2012-08-12 137 views
-1

我想要开始使用导航控制器教程,但我找不到其中有多个导航控制器的教程。多导航控制器

到目前为止我有以下代码:第一页是一个简单的主菜单使用UIViewController。通过按第一个按钮,用户可以使用UINavigationController访问客户列表页面,并且客户列表页面的导航栏上正确显示了“返回”按钮。

以我的应用程序委托,我有以下代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 

     self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
     // Override point for customization after application launch. 
     self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil]; 
     self.window.rootViewController = self.viewController; 
     [self.window makeKeyAndVisible]; 
     return YES; 
} 

在视图控制器,其负责显示的客户名单,后退按钮调用下面的方法:

- (void)backHome:(id)sender {  
    AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 
    ViewController *viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil]; 

    appDelegate.window.rootViewController = viewController; 

    [self.navigationController popToViewController:viewController animated:YES]; 

    // self.window.rootViewController = self.viewController; 
    [appDelegate.window makeKeyAndVisible];  
} 

但它停止工作。我不知道我该如何做这项工作。

+1

英文。格式化。空白。缩进。文档。努力。 – 2012-08-12 08:05:48

回答

1

设置一个UINavigationController作为对UIWindow你RootViewController的,就像这样:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
     self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
     // Override point for customization after application launch. 
     self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil]; 
     UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:self.viewController]; 
     self.window.rootViewController = navigationController; 
     [self.window makeKeyAndVisible]; 
     return YES; 
} 

然后就弹出的viewController在栈上回去的时候,是这样的:

-(void)backHome:(id)sender 
{ 
    [self.navigationController popViewControllerAnimated:YES]; 
} 
+0

谢谢,如果我不想有加载UINavigationController, ,并且只有UIViewController显示菜单。 这将为第二个菜单执行相同的操作,例如FoodMenu它将使用UITabNavigation。在它将返回按钮到主菜单(UIVIEWCOntroller) – user1592983 2012-08-12 13:04:14

0

要真正让您的头部围绕iOS的基础知识,我建议购买一本书并正确学习。就在最近,我得到了关于iOS的Big Nerd Ranch书,我发现它非常有帮助。祝你冒险成功!

为了回答你的问题,Markus有它的权利,你需要一个rootViewController,你可以从中推出其他视图(例如,当按下按钮时),并返回到主视图,你弹出一个在上面。

+0

感谢您的建议,我已经做了一些教程和3天的课程已经。但是我从教程中得到的结果是,一个项目只有一个UINavigatorCOntroller或UITabCOntroller。不过我尝试做的是 MAINMENU(UIViewController中) - 客户名单(UINavigationController的) - FoodMenu(UiTabController) 所以,如果你知道任何教程和书籍,请指点,THX。 – user1592983 2012-08-12 13:19:09