hii,那里
我正在制作一个tabbar应用程序。在第一个选项卡上的这个应用程序中,我正在使用导航,所以当我导航到其他视图时,我立即转到其他选项卡。再次当我要去第一个标签时,它会向我显示导航视图,我想显示第一个标签视图。
有人可以告诉我如何处理这些事情......
答案 0 :(得分:0)
您是否在询问如何在代码中从一个标签切换到另一个标签?如果是这样,它看起来像这样:
YourAppDelegate *appDelegate = (YourAppDelegate *)[[UIApplication sharedApplication] delegate];
[appDelegate tabcontroller].selectedIndex = [yourIntegerIndexHere];
如果显示“YourAppDelegate”,显然会使用您的实际应用代表的名称。
它表示“yourIntegerIndexHere”,这是一个整数,其中包含要切换到的选项卡的索引。最左边的标签是0。
答案 1 :(得分:0)
基于标签的应用程序的主要目的是保存所有视图,直到它们被导航为止。
如果您希望在点击标签栏时存在初始视图,则在每个标签栏视图中,您必须编写代码,以便将第一个标签中的视图弹出到该标签的根视图控制器。
快乐iCODING ...
答案 2 :(得分:0)
据我所知,你的TabBarController的第一个Tab上有一个NavigationController,当你点击第一个Tab时,你希望你的NavigationController返回到它的根视图控制器。
首先,请注意,这不是TabBarController的默认行为,它可能会让您的用户感到有点烦恼。用户可以通过再次点击选项卡返回TabBarController内NavigationController的根视图。
知道这一点,如果您仍想更改TabBarController的默认行为,可以执行以下操作:
将AppDelegate类设置为UITabBarController的Delegate。它必须实现UITabBarControllerDelegate
协议,你必须写这样的东西:
[myUITabBarController setDelegate:self];
在您的应用didFinishLaunchingWithOptions:
方法中。
然后,在AppDelegate中实现此方法。
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
if ([tabBarController selectedIndex] == kMyNavigationControllerIndex) {
[(UINavigationController *)[tabBarController selectedViewController] popToRootViewControllerAnimated:NO];
}
}
其中kMyNavigationControllerIndex
是一个常量值,包含您想要更改的NavigationViewController的索引(如果它是第一个选项卡,则为0)。
希望这有帮助。