Pet*_*rbo 4 uitabbarcontroller uinavigationcontroller ios
这可能很容易排序,但我无法弄清楚.我有一个带有两个标签的标签栏应用程序,每个标签都有一个UINavigationController.
让我们说我在标签1中推送一个调用的viewcontroller ItemViewController,然后我转到标签2.从标签2我想以编程方式显示ItemViewController.所以它应该首先将我带到选项卡1,然后显示ItemViewController.
只需点击选项卡1选项卡项即可轻松实现这一点,但出于其他原因我想以编程方式执行此操作.
我现在正在做的是实现这个目标:
[tab1NavController popToRootViewControllerAnimated:NO];
[tabBarController setSelectedIndex:0];
[tab1NavController pushViewController:itemViewController animated:NO];
Run Code Online (Sandbox Code Playgroud)
我希望能够在伪代码中做这样的事情:
if(viewControllerIWantToDisplayIsOnNavStack)
[tab1NavController presentViewController:viewControllerIWantToDisplay];
else
//instantiate and pushviewcontroller onto stack
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
// check if the desired controller is on the stack in tab 1
if([[tab1NavController viewControllers] containsObject:viewControllerIWantToDisplay]) {
// desired controller is on the stack, let's see if it's on top
if(tab1NavController.topViewController == viewControllerIWantToDisplay) {
// no need to do anything
}
else {
// we need to pop to the desired view controller
[tab1NavController popToViewController:viewControllerIWantToDisplay animated:NO];
}
} else {
// desired controller not on the stack
[tab1NavController pushViewController:viewControllerIWantToDisplay animated:NO];
}
Run Code Online (Sandbox Code Playgroud)
因此,您不必再在选项卡1中弹出根视图控制器.
| 归档时间: |
|
| 查看次数: |
2070 次 |
| 最近记录: |