因为习惯了使用代码写界面,偶尔一次使用控件,记录一下。
最新的Xcode5 使用Main.storyboard作为默认。
首先新建一个项目,选择Single View Application
然后,一路next。工程项目建立完成
打开storyboard
选择一个Navigation Controller拖到图中区域
可以看到,如图。
然后,删除Root View Controller
右击Navigation Controller ,把root 链接到 view Controller上,把上图的箭头放到Navigation左边
现在分析一下,如果,建立完工程后,你直接在代码中,
- (IBAction)action:(id)sender {
NSLog(@"self.navigationController is %@",self.navigationController);
FirstViewController *first = [[FirstViewController alloc] init];
[self.navigationController pushViewController:first animated:YES];
}
你会发现,self.navigaitonController is null,因为没有初始化。之前,我们在代码中的初始化为,
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
MainViewController *mainViewController = [[MainViewController alloc] init];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:mainViewController];
self.window.rootViewController = nav;
[self.window makeKeyAndVisible];
return YES;
}
所以,我们需要,添加一个navigation Controller,设置rootViewController所以出现了上边的操作。
但是,如果你没有把箭头拖到navigation Controller,那还会打印 self.navigaitonController is null,因为此时程序首先加载的还是Main.storyboard。
转载是请保留:来自http://blog.csdn.net/ralbatr