是的,你可以实现这个。这是在 iOS 中使用 NavigationController 进行的简单导航。
你有六个 viewController 1、2、3、4、5、6。
要做到这一点:
首先创建一个 NavigationController 并使用 ViewController 1(即根 View Controller)对其进行初始化。
现在你的 navigationController 的行为就像一个包含你所有推送的视图控制器的堆栈。 NavigationController 只是推送和弹出您的视图控制器。
所以,每次你想要导航时,首先检查你的 viewController 是否在 navigationController 堆栈中。如果它已经在堆栈中,则弹出到该控制器,如果没有,则推送相同的视图控制器。
此用途如下:
如果是 ViewController3
-(void)popToSelectedViewController
{
NSArray *vc=[self.navigationController viewControllers];
ViewController3 *vc3=nil;
for (int i=0; i<[vc count]; i++)
{
UIViewController *tempVC=[vc objectAtIndex:i];
if([tempVC isKindOfClass:[ViewController3 class]])
{
vc=[vc objectAtIndex:i];
break;
}
}
if(vc3)
{
//If exists inside stack the pop
[self.navigationController popToViewController:vc3 animated:YES];
}
else
{
//If not exists inside stack push ViewController3
ViewController3 *vc3New= [[ViewController3 alloc]initWithNibName:@"ViewController3" bundle:nil];
[self.navigationController pushViewController:vc3New animated:YES];
[vc3New release];
}
}
用 navigationController 初始化你的 ViewController1:
如果使用故事板
使用 UINavigationController 嵌入您的 initialViewController(即 viewController3)。
为此:
Step1:打开storyboard,选择你的initialViewController(即viewController3)。
Step2: 进入菜单中的编辑器 -> 选择嵌入 -> 选择 UINavigationController。
这将创建一个导航控制器并将 viewController3 初始化为 rootViewController。
如果不使用故事板
在.h中制作vc3(ViewController3)和applicationNavigationController(UINavigationController)的属性
在 .m 中:
在 appDelegate 中获得了方法“application... didFinishedLaunching ....”
并写:
self.vc3=[[ViewController3 alloc]initWithNibName:@"ViewController3" bundle:nil];
self.applicationNavigationController=[[UINavigationController alloc] initWithRootViewController:self.vc3];
self.window.rootViewController=self.applicationNavigationController;
[self.window makeKeyAndVisible];