使用pushViewController和popViewController进行视图间的切换,就必须要求当前视图是个NavigationController
self.navigationControler pushViewController 和 popViewController来进行视图切换
pushViewController是进入到下一个视图,popViewController是返回到上一视图
push以后会在navigation的left bar自动添加back按钮,它的响应方法就是返回。所以一般不需要写返回方法,点back按钮即可
快速的返回到某一个指定的页面
返回根页面用 :
[self.navigationController popToRootViewController]
返回指定的某个vc用下面
[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:2] animated:YES];
或
for (UIViewController *controller in self.navigationController.viewControllers) {
if ([controller isKindOfClass:[你要跳转到的Controller class]]) {
[self.navigationController popToViewController:controller animated:YES];
}
}
没有NavigationController导航栏的话,使用self.presentViewController和self.dismissModalViewController
[self presentModalViewController:controller animated:YES]; 返回之前的视图 [self dismissModalViewControllerAnimated:YES];
切换视图一般用不到addSubview
UINavigationController是导航控制器,如果pushViewController的话,会跳转到下一个ViewController,点返回会回到现在这个ViewController;
如果是addSubview的话,其实还是对当前的ViewController操作, self.window addSubView 需要注意的是,这个方法只是把页面加在当前页面。
此时在用self.navigationControler.pushViewController和 pushViewController 是不行的
https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIViewController_Class/#//apple_ref/occ/instm/UIViewController/
https://developer.apple.com/library/ios/documentation/UIKit/Reference/UINavigationController_Class/