4

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

用这段代码展示它:

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

使模态视图控制器位于 UINavigationBar 下方。当我显示此模式视图时,不应显示 UINavigationBar。我怎么能绕过呢?

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

4

2 回答 2

9
[self.navigationController presentModalViewController:ukc animated:NO];
于 2012-07-25T20:42:45.373 回答
0

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

note173 的答案animated:YES也适用。用户将看到ukc的视图在导航堆栈上向上滑动。

如果您随后需要关闭ukc并返回self的视图,请执行以下操作:

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

第一个电话取消ukc。第二个调用关闭导航控制器。用户看到的是ukc' 的视图向下滑动以显示self' 的视图,并瞥见其后面的导航堆栈。

因此,您在这里拥有的是一种直接从导航堆栈切换到其他常规视图控制器,然后返回到基本视图控制器的方法,所有这些都带有具有顺序意义的动画。

(如果您的目标是在导航堆栈和 之间来回切换,则只需一次调用即可ukc关闭-这会将' 的视图向下滑动以显示导航堆栈。)ukcself.navigationController dismissModalViewControllerAnimated:YES];ukc

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

于 2012-08-22T21:38:59.090 回答