2012-03-28 9 views
0

私は、その日の情報を持つDayViewControllerのカレンダーの日であるUIbuttonからStoryboard segueを実行しようとしています。 DayViewControllerのdayViewで、送信側UIbuttonのcurrentTitleをUILabelに渡す必要があります。それは正常に新しいVCにseguesと私のDayViewControllerのdayView(とベースビュー)が初期化されていない(デバッガのアドレスは両方0x0です)と空白のページが表示されますが、そこにプロパティにボタンのタイトルを割り当てます。このようなビューを初期化するにはどうすればよいですか? (私はにseguedときVCにリンクされているビューが自動的に初期化されたと思った?)UIViewがストーリーボードから初期化されないSegue

ここprepareForSegueが呼び出さなっています:

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(UIButton *)sender 
{ 
    if ([segue.identifier isEqualToString:@"ShowDay"]) { 
     DayViewController *vc = segue.destinationViewController; 
     [vc setCurrentDayNumber:sender.currentTitle]; 
} 

は、ここで新しいVC

-(void)setCurrentDayNumber:(NSString *)currentDayNumber 
{ 
    _currentDayNumber = currentDayNumber; 
    [self.dayView setNeedsDisplay]; 
}  

でsetCurrentDayNumberはここに私のですストーリーボードのDayViewControllerにリンクされているビュー。

@property (nonatomic, weak) IBOutlet DayView *dayView; 

ありがとうございます!

+0

@propertyを 'weak'ではなく' strong'に変更すると、これは機能しますか? – lnafziger

+0

ああ私の良さそうです!あなたは見知らぬ人に感謝します! – Patrick

+0

あなたは大歓迎です! Stack Overflow(SO)へようこそ。あなたのお手伝いをした人にクレジットを与えるためにあなたの質問に答えたときに回答を受け入れてください(回答の横にあるチェックマークをクリックしてください)。 – lnafziger

答えて

0

プロパティをweakとして宣言すると、他の誰かがそのプロパティを参照していない限り、そのプロパティを値に「ホールド」しません。新しいビューコントローラーがプッシュされると、古いボタンが消え、currentDayNumberが唯一の参照として残されます。自動的にnilに設定されます。 (これが行うことになっている弱いものです。)

あなたは、どんなことへの参照を保持しないstrongではなくweakの使用とどこか(viewDidUnloadのような)nilに_currentDayNumberを設定して確認するには、あなたドンように、それを永遠に保持しないでください。

関連する問題