2013-06-22 75 views
0

我在代碼中有ViewControllers A和B.將self.presentingViewController呈現給前景

我按下按鈕時呈現B.然後在B中添加一個導航欄,其中有一個名爲「返回上一屏幕」的導航項。然後,我嘗試做這樣的邏輯:當按下導航項目,執行下面的代碼返回到B的presentingViewController,其中,在這種情況下,我認爲這是A.

[self presentViewController:self.presentingViewController animated:YES completion:nil]; 

可惜不顯示向上。我在lldb中使用「print [self.presentingViewController class]」命令,我可以看到這個類是A.我做錯了什麼?

回答

1

如果 「A介紹B」 由presentViewController:動畫:完成:那麼你可以通過一些回這樣的:

- (void) back: (id)sender 
{ 
    [[self presentingViewController] dismissViewControllerAnimated:YES completion:nil]; 
} 
+0

這工作正常。這很奇怪,我的代碼根本不起作用。 – newguy

0

爲什麼不添加UINavigationController「A」?那麼你的邏輯更好,更容易。

只要按照我的代碼。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    // Override point for customization after application launch. 

    self.AViewController = [[AViewController alloc] init]; 
    self.navCon = [[UINavigationController alloc] initWithRootViewController:self.AViewController]; 
    self.window.rootViewController = self.navCon; 

    [self.window makeKeyAndVisible]; 
    return YES; 
} 
+0

是的,我知道。但我不想讓UINavigationController顯示在我的第一頁上。除此之外,我也想知道爲什麼我的代碼不工作,因爲邏輯似乎很好。 – newguy