2012-03-28 58 views
0

我正試圖從UIbutton執行Storyboard segue,這是Day DayController上日曆上的一天,並且當天有信息。發送者UIbutton的currentTitle應該在DayViewController的dayView中傳遞給UILabel。它成功插入到新的VC中,並將按鈕標題分配給其中的一個屬性,但DayViewController的dayView(和基本視圖)沒有初始化(它們在調試器中的地址都是0x0),並且我得到一個空白頁。我怎樣才能讓這些視圖在這個segue中初始化? (我想,當segued到視圖鏈接到VC被自動初始化?)UIView未從Storyboard中初始化Segue

這裏的prepareForSegue獲取調用:

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

這是在新的VC setCurrentDayNumber

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

這裏是我的視圖鏈接到故事板中的DayViewController。

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

在此先感謝!

+0

如果將@property更改爲'strong'而不是'weak',這是否可行? – lnafziger 2012-03-28 20:14:42

+0

哦,我的天啊!謝謝陌生人! – Patrick 2012-03-28 20:20:40

+0

不客氣!歡迎來到堆棧溢出(SO),當他們回答你的問題時,請接受答案(通過點擊答案旁邊的複選標記),以便給予幫助你的人的功勞! – lnafziger 2012-03-28 20:29:27

回答

0

當你聲明一個屬性很弱時,它不會「持有」該值,除非其他人也引用了它。當新視圖控制器被按下時,舊按鈕消失,只剩下currentDayNumber作爲唯一引用,所以它自動將它自己設置爲nil。 (這是弱是應該做的。)

如果你想保持對它的引用無論什麼時候,用strong代替weak並確保設置_currentDayNumber爲零的地方(如viewDidUnload),這樣你不永遠不會保留它。