2012-03-28 49 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),这样你不永远不会保留它。