在iOS 5上,当我尝试使用presentModalViewController
呈现来自另一个视图控制器的任何视图控制器时,模态视图显示在当前视图后面。
由于它在iOS 4上工作正常,并且知道在iOS 5中已弃用presentModalViewController
,我尝试使用presentViewController
但没有运气。
这是我第一次遇到这个问题,关于什么可能导致这种奇怪行为的任何想法?
答案 0 :(得分:0)
我认为问题在于你没有设置正确的模态演示风格。 http://developer.apple.com/library/ios/documentation/uikit/reference/UIViewController_Class/Reference/Reference.html#//apple_ref/doc/c_ref/UIModalPresentationStyle
此示例应在现有视图控制器的顶部触发全屏模式。
[self setModalPresentationStyle:UIModalPresentationFullScreen];
ViewController2 *vc = [[ViewController2 alloc] initWithNibName:@"ViewController2" bundle:nil];
[self presentViewController:vc animated:YES completion:NULL];
答案 1 :(得分:0)
不确定您是否使用按钮来显示视图控制器,但如果您这样做,这应该可以使用。在视图控制器中创建一个新功能,如下所示。这会在您的视图中实例化您的视图和导航控制器,以便之后可以将其解除。
- (void)buttonPressed {
UIViewController *yourViewController = [[UIViewController alloc] initWithNibName:nil bundle:nil];
UINavigationController *navigationController = [[UINavigationController] alloc] initWithRootViewController:yourViewController];
[self presentModalViewController:navigationController animated:YES];
}
然后在viewDidLoad中你会有这样的东西(如果你是从按钮中呈现它)。下面的代码用于UIBarButtonItem,但其他按钮应该以类似的方式工作。只需确保将action参数设置为@selector(buttonPressed),或者按下按钮时要调用的函数名称。
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] init]
target:self
action:@selector(buttonPressed)];
答案 2 :(得分:0)
我终于找到了这个问题。由于一些尴尬的原因,根窗口的rootViewController
未正确设置,导致模态视图的奇怪行为。
更令人费解的是,到目前为止它在iOS 4上运行良好并且在iOS 5上失败了。我相信我仍然错过导致此类问题的真正原因,但正确设置rootViewController
在{ {1}}解决了这个问题。