如何防止用户离开视图控制器?

时间:2013-09-25 14:36:58

标签: ios objective-c uinavigationcontroller

我有一个iPad应用程序(XCode5,ARC,iOS7,带有控制导航的UITabBarController的故事板)。在一个视图中,我在 -viewWillDisappear 中检查了一些必填字段;如果其中一个丢失,我会显示警报。问题是我需要保持这种观点,直到它得到纠正。不幸的是,我可以检查所需字段的唯一地方是 -viewWillDisappear

是否有某种方法可以让视图完成消失,然后返回相同的视图?我已经看过SO了,这似乎不是一种方式,但我想我还是会问,以防万一有人知道怎么做..:D

2 个答案:

答案 0 :(得分:2)

你需要做

self.tabBarController.delegate = self
在viewdidload中

然后实现委托方法

  - (BOOL)tabBarController:(UITabBarController *)tabBarController 
shouldSelectViewController:(UIViewController *)viewController
{
    if(conditions_satisfied)
        return YES;
    else
    {
        //show alert view here
        return NO;
    }
}
编辑:看来rdelmar比我快:)

答案 1 :(得分:1)

您可以设置标签栏控制器的委托,并从tabBarController:shouldSelectViewController返回NO:直到满足您设置的任何条件。