2012-10-22 51 views
0

我有一个viewController,当我移动到应用程序中的另一个选项卡时,我想让他弹出。我的问题是,当我在这个视图中时,我有一个用于添加ABPeoplePickerNavigationController的人的“加号”按钮,当人员选择器变为活动状态时,视图也会弹出,所以当我完成选择应用程序的人员时,因为它没有任何意见可以回来。只有当特定视图不出现时才弹出视图控制器

这是viewWillDisappear:

- (void)viewWillDisappear:(BOOL)animated 
{ 
    [self.navigationController popViewControllerAnimated:YES]; 
} 

我怎样才能解决呢?

新代码:

- (void)viewWillDisappear:(BOOL)animated 
{ 
    NSArray *controllers = self.darioTabController.childViewControllers; 
    UIView *v; 

    for (UIViewController *vc in controllers) 
    { 
     if ([vc isKindOfClass:[@"ModalPresnterViewController" class]]) // or even [ABPeoplePickerNavigationController class] 
     { 
      v = vc.view; 
     } 
     else 
      [self.navigationController popViewControllerAnimated:YES]; 
    } 
} 

谢谢!

回答

0

如果你想要的操作,只有当你点击就可以使用TabBarController委托方法的标签栏发生:

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 
{ 
    //The user click on the item corresponding to ABPeoplePickerNavigationController 
    if([viewController isKindOfClass:[ABPeoplePickerNavigationController class]]) 
    { 
    //Do something if you cant 
    } 
    else // The user click on an other view controller (pop the ABPeoplePickerNavCtrl) 
    { 
    [yourController.navigationController popViewControllerAnimated:YES]; 
    } 
} 

或者可以查看哪个TabBarItem选择:

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 
{ 
    //Check if the selected view controller (ABPeopleNavCtrl) 
    if(tabBarController.selectedIndex == indexOfTheABPeoplePickNavigationController) 
    { 

    } 
    else // Else the user tap on an other item, so pop the controller you want 
    { 
    [theViewControllerToPop.navigationController popViewControllerAnimated:YES]; 
    } 
} 

注意:记住设置UITabBarController代理;)

+0

我怎样才能知道当前显示的视图控制器是ABPeoplePick erNavigationController? –

+0

我编辑了我的回复来回答你的问题;) – Ashbay

+0

这不适合我,因为我不希望它只在移动到另一个tabBar时弹出,我希望它随时弹出,除非打开ABPeoplePickerNavCon。我编辑了我的代码,请检查它。 –

相关问题