运行检查在ios7上输入另一个选项卡

时间:2014-05-20 16:52:46

标签: objective-c ios7

我最近开始为iOS编程。在我的程序中,我在Tab Bar Controller上有两个选项卡。每次用户想要进入第二个选项卡时,我需要检查一个名为player的数组是否有足够的条目。我在viewDidLoad函数中使用简单的if语句尝试了它。但我发现,只有在第一次输入标签时才会调用此功能。所以我想问一下怎么做?

现在我的第二个问题是:如果在显示UIAlertView之后没有足够的玩家条目,我怎样才能带回第一个标签?

感谢您的回复。

所以我将代码移到了viewDidLoad函数中。每次打开选项卡时都会调用它。但是切换回第一个标签的另一部分无法正常工作:

- (void)viewDidAppear:(BOOL)animated
{
   if([[self players] count] < 2)
   {
      UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Please add at least two players!" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];

      [alert show];

      UITabBarController *tabBarController = (UITabBarController *)self.presentingViewController;
      [tabBarController setSelectedIndex:0];
}

}

1 个答案:

答案 0 :(得分:0)

要在每次出现UIViewController时运行某些内容,请使用viewWillAppearviewDidAppear,具体取决于您要检查的时间。

要以编程方式从UITabBarController中的一个视图控制器返回到另一个视图控制器,请通过使用{{1从子视图控制器访问它来设置UITabBarController的selectedViewControllerselectedIndex属性。 }}。

或者,使用UITabBarControllerDelegate的tabBarController:shouldSelectViewController:方法来决定是否应该选择第二个视图(并且如果它不应该显示警告)。