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