2012-08-12 61 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