Iphone 选择tabview-IOS时获取UIViewController的正确实例
在我的应用程序中,我的tabview有一个相当大的问题。我的问题是,在Tabar的中间使用自定义UBITCON,然后在更改索引时手动调用<代码> DestStultVIEW控制器委托代码>代码> UITABBAKECORDER委托/<代码>。p> 问题是,当我想检查已选择的viewController时,我没有得到viewController的正确实例 代码: 我在这里调用这个方法:Iphone 选择tabview-IOS时获取UIViewController的正确实例,iphone,ios,uiviewcontroller,uitabbarcontroller,Iphone,Ios,Uiviewcontroller,Uitabbarcontroller,在我的应用程序中,我的tabview有一个相当大的问题。我的问题是,在Tabar的中间使用自定义UBITCON,然后在更改索引时手动调用 DestStultVIEW控制器委托代码>代码> UITABBAKECORDER委托/。p> 问题是,当我想检查已选择的viewController时,我没有得到viewController的正确实例 代码: 我在这里调用这个方法: -(void) notifmethod{ UIViewController *cameraViewController
-(void) notifmethod{
UIViewController *cameraViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"cameraNavViewController"]; //Tried this
//CameraNavController *viewController = [[CameraNavController alloc] init];/And this
[self tabBarController:self didSelectViewController:cameraViewController]; //The call
NSLog(@"This called");
}
这样做的主要原因是,如果选择了某个viewcontroller,我想
poptrootviewcontrolleranimated:NO
。谢谢你的帮助 我认为您的问题在于,您正在notifmethod中创建cameraViewController的新实例,而不是获取已经与选项卡栏控制器关联的实例。此外,无需调用委托方法,只需执行以下操作:
-(void) notifmethod{
UINavigationController *nav = self.tabBarController.viewControllers[2];
[nav popToRootViewControllerAnimated:NO];
}
我假设您是从选项卡栏控制器的视图控制器之一调用它,所以我使用self.tabBarController。如果这不是真的,那么您必须更改该引用
-(void) notifmethod{
UINavigationController *nav = self.tabBarController.viewControllers[2];
[nav popToRootViewControllerAnimated:NO];
}