如何防止Storyboard Segue重置UIPopoverController中的UIViewController

时间:2011-12-01 22:19:01

标签: ios ios5 uipopovercontroller storyboard

这是我的问题。使用Storyboard的segue,我有一个用于按钮的popover segue。 UIPopoverController中的UIViewController需要从服务器加载数据。使用Storyboard,每次关闭弹出窗口时,视图都会被释放,因此每当弹出窗口再次出现时,它会尝试再次从服务器加载数据。我不想要这种行为。如何防止Storyboard重置弹出控制器内的视图控制器?像UITabBarController那样的东西。 UITabBarController第一次调用viewDidLoad,并且后续的选项卡切换调用viewWillAppear。

1 个答案:

答案 0 :(得分:4)

Segue就是这样设计的。每次你做segue - 视图都会被加载。 如果你需要存储它的数据 - 你应该将它存储在popover之外并使用这个方法

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
    if ([[segue identifier] isEqualToString:@"your segue identifier"])
    {
        //get popover
        ViewController *vc = [segue destinationViewController];

        //Set popover data to vc here
    }

在segue之前调用,并在此方法中将数据设置为popover。 如果您将使用它 - 请不要忘记在Interface Builder中设置Segue标识符。