我正在尝试从日历上的一天的UI按钮到DayViewController执行Storyboard segue,其中包含当天的信息。发送方UI按钮的currentTitle应该传递给DayViewController的dayView中的UILabel。它成功地分段到新的VC并将按钮标题分配给其中的属性,但是我的DayViewController的dayView(和基本视图)没有被初始化(它们在调试器中的地址都是0x0)并且我得到一个空白页面。如何在这个segue中初始化这些视图? (我认为链接到VC的视图在被绑定时会自动初始化?)
以下是调用的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 :(得分:0)
当您将属性声明为弱时,它将不会“保持”该值,除非其他人也引用该属性。按下新视图控制器时,旧按钮消失,将currentDayNumber保留为唯一参考,因此它会自动将其自身设置为nil。 (这是应该做的弱事。)
如果你想保留对它的引用,请使用strong
而不是weak
,并确保将_currentDayNumber设置为nil(如viewDidUnload),这样就不会保留它永远。