1

我有两个场景。一个常规的全屏 iPad 视图和另一个弹出视图。点击一个按钮可以毫无问题地加载弹出视图。在弹出视图中,我有一个按钮,它将执行一些操作,并且还链接到情节提要模式转换。

这个想法是从弹出视图中按下按钮将保存用户的选择状态并将该数据发送到主视图。我对数据保存没有任何问题,效果很好。

我遇到的问题是,当我从弹出视图中按下按钮时,主视图的viewDidLoad方法实际上在弹出视图的IBAction方法完成之前完成。所以主视图获取数据,但由于视图已经加载,它无法及时更新标签。

我尝试创建多个弹出视图场景,并在主视图中添加了多个按钮,这些按钮将链接到这些新场景。奇怪的是,其中一些工作得很好。其中一些将执行该IBAction方法,然后通过模态转换转换回主视图。似乎没有押韵或理由为什么一个在另一个之前加载。

我想一个可能的解决方案是IBAction在弹出视图的方法中手动执行转换。我对此绝对是新手,所以我可能缺少一些关于过渡的基本知识。

4

2 回答 2

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];
    }
}

在加载视图之前调用此方法..

于 2013-01-21T17:00:39.830 回答
1

如果您正在调用弹出框,那么主屏幕不应调用 viewDidLoad 方法,因为主视图仍在后面。它应该调用 viewWillAppear 和 viewDidApper 方法。

你能检查一下吗?我认为您应该在调用这两种方法之一后刷新主屏幕。

试一试,告诉我结果。

于 2013-01-21T17:01:55.753 回答