我有两个场景。定期的全屏iPad视图和另一个弹出视图。点击按钮可以毫无问题地加载弹出视图。在弹出窗口视图中,我有一个按钮,它将执行一些操作,并且还链接到故事板模式转换。
这个想法是从弹出窗口视图中按下按钮将保存用户的选择状态并将该数据发送到主视图。我没有数据保存的问题,这很好。
我遇到的问题是,当我从弹出窗口视图中按下按钮时,主视图的viewDidLoad
方法实际上在弹出视图的IBAction
方法之前完成。因此主视图获取数据,但由于视图已加载,因此无法及时更新标签。
我尝试创建多个弹出视图场景,并在主视图中添加了多个按钮,这些按钮将链接到这些新场景。奇怪的是,其中一些工作得很好。其中一些将执行IBAction
方法,然后通过模态转换转换回主视图。似乎没有押韵或理由为什么一个人加载到另一个之前。
我想一个可能的解决方案是在弹出视图的IBAction
方法中手动执行转换。我绝对是新手,因此我可能会有一些关于过渡的基本信息。
答案 0 :(得分:2)
在按钮存在的视图的视图控制器中...当要执行segue时。您可以在
中传递数据 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
// Make sure your segue name in storyboard is the same as this line
if ([[segue identifier] isEqualToString:@"YOUR_SEGUE_NAME_HERE"])
{
// Get reference to the destination view controller
YourViewController *vc = [segue destinationViewController];
// Pass any objects to the view controller here, like...
[vc setMyObjectHere:object];
}
}
在加载视图之前调用此方法..
答案 1 :(得分:1)
如果你正在调用一个弹出窗口,那么主屏幕不应该调用viewDidLoad方法,因为主视图仍然在后面。它应该调用viewWillAppear和viewDidApper方法。
你能检查一下吗?我想你应该在调用这两种方法之一后刷新主屏幕。
试一试并告诉我结果。