我在Xcode中创建了一个新的iPhone“基于视图的应用程序”。然后我添加了一个新的“UIViewController子类”,并检查了“使用XIB进行用户界面。现在问题是,在连接所有变量和消息处理程序后,我无法使用以下代码将新控制器压入堆栈:
[self.navigationController pushViewController:self.cabinetController
animated:YES];
所有的变量和视图都是正确连接的,所以我能想到的就是它通过将其推送到“navigationController”来实现它的方式。这里有什么我想念的吗? (我对iPhone和Apple编程很新,所以它可能是一个非常简单的疏忽)。
我意识到没有提供足够的信息......这里是项目的链接。请注意,这是一项教育活动,有一些创造性的名称课程。
答案 0 :(得分:0)
您需要将视图控制器更改为导航控制器,并将其根视图控制器设置为当前视图控制器。
答案 1 :(得分:0)
如果您检查了self.navigationController
,就会发现它是nil
。消息传递零没有伤害,所以这里没有错误信息。
使用UINavigationController
添加另一个图层,并添加RandomShitViewController
(漂亮的名字btw。)作为其根视图控制器。
导航控制器处理推/弹部件,旧控制器管理其视图。
答案 2 :(得分:0)
在appDelegate中创建一个UINavigationController实例变量,然后使用现有的viewController作为导航控制器的rootViewController。
e.g。在使用UITableViewController的纯代码中(您可以使用xibs以及模板应用程序可能执行的操作)。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Create root view and navigation controller
UITableViewController *rootViewController = [[[UITableViewController alloc] initWithStyle:UITableViewStyleGrouped] autorelease];
self.navigationController = [[[UINavigationController alloc] initWithRootViewController:rootViewController] autorelease];
// Not necessary if you're using xibs
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Add the nav controller's root view to the window
[window addSubview:navigationController.view];
[window makeKeyAndVisible];
return YES;
}