我有2个viewcontrollers,我想从一个发送通知到另一个,并根据通知的名称更改标签(按UIButton)。我刚开始使用segues,发现它们是从一个视图到另一个视图的非常有用的方法。我面临的问题是使用segue(目前的模态),第二个视图控制器没有收到通知。我相信segues在使用时会释放并创建新的视图控制器,但不确定。有没有办法解决这个问题?
谢谢!
答案 0 :(得分:0)
使用prepareForSegue
转到segue,并使用委托模式返回。在prepareForSegue
内,将原始viewController设置为目标viewController的委托。返回时,让目标viewController为你实现的任何方法调用它的委托(原始viewController)。
答案 1 :(得分:0)
我认为使用NSNotification不是将数据从一个VC传递到另一个VC的正确方法。像Rog所说,使用prepareForSegue并在目标VC上使用属性:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Always check to make sure you are handling the right Segue
if ([segue.identifier isEqualToString:@"mySegue"]) {
MyOtherViewController *movc = segue.destinationViewController;
movc.myProperty = @"MyValue";
}
}