在UINavigationController之上呈现模态视图控制器

时间:2012-07-25 20:36:25

标签: iphone ios uinavigationcontroller uikit modalviewcontroller

我的应用程序位于UINavigationController下方,因此位于UINavigationBar下方。我想在这个UINavigationBar之上呈现一个模态视图控制器,因为我写的控制器没有意义,如果它在它下面(也就是说,我想在显示这个视图控制器时隐藏导航栏)。

使用此代码演示:

    ukc = [[UnlockKeyboardViewController alloc] init];
    [self presentModalViewController:ukc animated:NO];

导致模态视图控制器低于UINavigationBar。当我显示这个模态视图时,UINavigationBar不应该出现。我怎么能绕过那个?

PS:这是一个越狱应用程序,所以没有Interface Builder。

2 个答案:

答案 0 :(得分:9)

[self.navigationController presentModalViewController:ukc animated:NO];

答案 1 :(得分:0)

处理相关问题的额外信息:

note173&#39}的回答也适用于animated:YES。用户将看到ukc的视图在导航堆栈上向上滑动。

如果您随后需要解雇ukc并返回self的观点,请执行以下操作:

        [self.navigationController dismissModalViewControllerAnimated:NO];
        [self.navigationController dismissModalViewControllerAnimated:YES]; 

第一个电话驳回ukc。第二个电话解雇了导航控制器。用户看到的是ukc的视图向下滑动以显示self的视图,并瞥见其背后的导航堆栈。

所以你在这里有一种直接从导航堆栈切换到其他常规视图控制器,然后回到基本视图控制器的方式,所有这些都具有顺序感觉的动画。

(如果您的目标是在导航堆栈和ukc之间来回切换,您可以通过一次调用取消ukc - self.navigationController dismissModalViewControllerAnimated:YES];,这会ukc向下看以显示导航堆栈。)

请注意,这些方法在iOS 5中已弃用。我假设presentViewControllerdismissViewControllerAnimated会做同样的事情,但我还没有测试过它们。

相关问题