2010-06-20 63 views
0

我在Xcode中创建了一个新的iPhone“基于视图的应用程序”。然后我添加了一个新的“UIViewController子类”,并检查了“用XIB的用户界面。现在我遇到的问题是,在连接所有变量和消息处理程序后,我无法使用以下代码将新控制器推入堆栈:iPhone:创建新的“基于视图的应用程序”=没有视图控制器?

[self.navigationController pushViewController:self.cabinetController 
            animated:YES]; 

所有的变量和观点都正确挂接,让所有我能想到的是,它的我做的方式,通过将其推到了“navigationController”出了什么事我是缺少在这里?(我对iPhone和苹果编程一般都很陌生,所以它可能是一个非常简单的疏忽)

我意识到没有提供足够的信息...这里是项目的链接。这是一个教育练习,有一些创造性的名字课。

http://files.me.com/nippysaurus/4yqz8t

+0

你将不得不提供更多的代码,如果你希望我们理解您的问题... – 2010-06-20 09:49:28

+0

@迈克尔:对不起,这里是该项目的链接。 http://files.me.com/nippysaurus/4yqz8t – Nippysaurus 2010-06-20 09:59:34

回答

0

在你的appDelegate中创建一个UINavigationController实例变量,然后使用你现有的viewController作为导航控制器的rootViewController。

例如在使用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; 
} 
0

您需要将您的视图控制器更改为导航控制器,其设置为当前视图控制器根视图控制器。

0

如果你检查你的self.navigationController,你会意识到它是nil。消息零不会伤害,所以这里没有错误信息。

添加一个UINavigationController的图层,并将其作为其根视图控制器添加RandomShitViewController(nice name btw。)。

导航控制器处理推/拉部件,您的旧控制器管理其视图。

相关问题