将self.presentingViewController呈现给前台

时间:2013-06-22 05:27:02

标签: objective-c ipad cocoa-touch

我在代码中有ViewControllers A和B.

按下按钮时出现B。然后在B中我添加了一个导航栏,其中有一个名为“返回上一屏幕”的导航项。然后我尝试做这个逻辑:当按下导航项时,执行以下代码返回到B的presentsViewController,在这种情况下我认为它是A.

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

但不幸的是A没有出现。我在lldb中使用“print [self.presentingViewController class]”命令,我可以看到该类是A.我做错了什么?

2 个答案:

答案 0 :(得分:1)

如果“A呈现B”由presentViewController:animated:completion:那么你可以通过这样的东西回到A:

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

答案 1 :(得分: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;
}