Ios 如何防止情节提要序列图像在UIPopoverController中重置UIViewController

Ios 如何防止情节提要序列图像在UIPopoverController中重置UIViewController,ios,ios5,uipopovercontroller,storyboard,Ios,Ios5,Uipopovercontroller,Storyboard,这是我的问题。有了故事板的segue,我就有了一个酒吧按钮的popover segue。UIPopoverController中的UIViewController需要从服务器加载数据。对于故事板,每次我关闭popover时,视图都会被释放,因此每当popover再次出现时,它都会尝试再次从服务器加载数据。我不想要这种行为。如何防止情节提要在popover控制器内重置视图控制器?类似于UtiAbbarController的功能。UITabBarController第一次调用viewDidLoad,

这是我的问题。有了故事板的segue,我就有了一个酒吧按钮的popover segue。UIPopoverController中的UIViewController需要从服务器加载数据。对于故事板,每次我关闭popover时,视图都会被释放,因此每当popover再次出现时,它都会尝试再次从服务器加载数据。我不想要这种行为。如何防止情节提要在popover控制器内重置视图控制器?类似于UtiAbbarController的功能。UITabBarController第一次调用viewDidLoad,随后的选项卡开关调用VIEWWILLEASE。

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标识符。

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 identifier。

但这将增加在视图控制器外部加载数据的额外复杂性。加载数据(理想情况下应该在视图控制器中)的代码现在将在popover父控制器中。我解决了这个问题,不使用segues,总是手工制作popover。但我真的希望能够使用Segue。据我所知,Segue将始终创建新的ViewController。或者不使用segue,或者使用segue知道这一点。但是你可以尝试使用自定义segue,但我认为这不会改变。自定义segue不是一个选择,因为使用segue维护的任何东西在完成任务后都会被释放。因此,当前的解决方案似乎根本不使用Segues,而是按照旧方法手动完成。但这将增加在视图控制器之外加载数据的额外复杂性。加载数据(理想情况下应该在视图控制器中)的代码现在将在popover父控制器中。我解决了这个问题,不使用segues,总是手工制作popover。但我真的希望能够使用Segue。据我所知,Segue将始终创建新的ViewController。或者不使用segue,或者使用segue知道这一点。但是你可以尝试使用自定义segue,但我认为这不会改变。自定义segue不是一个选择,因为使用segue维护的任何东西在完成任务后都会被释放。因此,目前的解决方案似乎根本不使用Segues,而是按照老方法手工操作。