首页 > 代码库 > 源码03-02-10-导航控制器简单使用
源码03-02-10-导航控制器简单使用
//// AppDelegate.m// 10-导航控制器简单使用#import "AppDelegate.h"#import "OneViewController.h"@interface AppDelegate ()@end@implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. // 创建窗口 self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; // 创建导航控制器的跟控制器,也属于导航控制器的子控制器 UIViewController *vc = [[OneViewController alloc] init]; vc.view.backgroundColor = [UIColor redColor]; // 导航控制器也需要一个根控制器 // 默认导航控制器把根控制器的view添加到导航控制器的view上 UINavigationController *navVc = [[UINavigationController alloc] initWithRootViewController:vc]; NSLog(@"%@",navVc); // 设置窗口的跟控制器 self.window.rootViewController = navVc; [self.window makeKeyAndVisible]; return YES;}@end
OneViewController.xib
//// OneViewController.h// 10-导航控制器简单使用#import <UIKit/UIKit.h>@interface OneViewController : UIViewController@end
//// OneViewController.m// 10-导航控制器简单使用#import "OneViewController.h"#import "TwoViewController.h"@interface OneViewController ()@end@implementation OneViewController// 跳转第二个控制器- (IBAction)jump2Two:(id)sender { //在这里设置要跳去的的控制器 TwoViewController *vc = [[TwoViewController alloc] init]; vc.view.backgroundColor = [UIColor yellowColor]; // 跳转 // 如果导航控制器调用push,就会把vc添加为导航控制器的子控制器 [self.navigationController pushViewController:vc animated:YES]; // NSLog(@"%@",self.navigationController); }- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view from its nib.}- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}@end
TwoViewCoutroller.xib
//// TwoViewController.m// 10-导航控制器简单使用#import "TwoViewController.h"#import "ThreeViewController.h"@interface TwoViewController ()@end@implementation TwoViewController- (IBAction)jump2Three:(id)sender { ThreeViewController *three = [[ThreeViewController alloc] init]; [self.navigationController pushViewController:three animated:YES]; }- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view from its nib.}- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}@end
ThreeViewController.xib
//// ThreeViewController.m// 10-导航控制器简单使用#import "ThreeViewController.h"@interface ThreeViewController ()@end@implementation ThreeViewController// 返回上一个控制器- (IBAction)backToPre:(id)sender { // pop不是马上把控制器销毁, // 回到上一个界面 [self.navigationController popViewControllerAnimated:YES]; }// 返回到导航控制器的跟控制器- (IBAction)back2Root:(id)sender { // 注意:只能返回到栈里面的控制器 [self.navigationController popToViewController:self.navigationController.childViewControllers[0] animated:YES];// [self.navigationController popToRootViewControllerAnimated:YES];}- (void)dealloc{ NSLog(@"%s",__func__);}- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view from its nib.// NSLog(@"%@",self.navigationController.viewControllers); NSLog(@"%@",self.navigationController.topViewController);}- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}/*#pragma mark - Navigation// In a storyboard-based application, you will often want to do a little preparation before navigation- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Get the new view controller using [segue destinationViewController]. // Pass the selected object to the new view controller.}*/@end
源码03-02-10-导航控制器简单使用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。