【发布时间】:2011-07-26 03:08:34
【问题描述】:
我正在为 Ipad 创建一个应用程序,我创建了 3 个带有导航栏的视图,但我不想在第一个视图中而是在第二个视图中启动我的应用程序,我该怎么办?
【问题讨论】:
标签: objective-c xcode ipad view navigationbar
我正在为 Ipad 创建一个应用程序,我创建了 3 个带有导航栏的视图,但我不想在第一个视图中而是在第二个视图中启动我的应用程序,我该怎么办?
【问题讨论】:
标签: objective-c xcode ipad view navigationbar
您可以通过setViewControllers:animated: 使用初始导航堆栈设置UINavigationController。
// in application:didFinishLaunchingWithOptions:
self.navigationController = [[UINavigationController new] autorelease];
UIViewController *first = [[MyFirstViewController new] autorelease];
UIViewController *second = [[MySecondViewController new] autorelease];
NSArray *controllers = [NSArray arrayWithObjects:first, second, nil];
[navigationController setViewControllers:controllers animated:NO];
...
[window addSubview:navigationController.view];
【讨论】:
在启动时使用堆栈中已有的 2 个控制器以编程方式初始化您的导航控制器:
FirstViewController *first = ...//create controller
SecondViewController *second = ...//create controller
[navigationController setViewControllers:[NSArray arrayWithObjects:first, second, nil]
animated:NO];
或者,您也可以让您的第一个控制器在启动时推送第二个控制器 - 有关该技术,请参阅 Apple 的 DrillDownSave 示例。
【讨论】:
按照以下步骤操作:
1.打开资源文件夹或包中的MainWindow.xib。
2.单击工具并打开Inspector >> 选择attribute >> NIB Name-在此处从下拉列表中设置您的视图名称>> identity 在检查器中(从上部选项卡)>> 选择@ 987654326@ - 从下拉列表中再次设置您的视图名称。
3.打开appdelegate.m文件
在此处将视图控制器更改为:fileviewcontrollername *viewController;
设置它的属性。
4.in didFinishLaunching in appdelegate.m 添加
UINavigationController *navController=[[UINavigationController alloc]initWithRootViewController:viewController];[window insertSubview:navController.view];[self.window makeKeyAndVisible];return YES;
5.在appdelegate.h文件中添加
@class viewControllername;
【讨论】: