呈现模态视图继续失败

时间:2013-05-06 09:23:46

标签: iphone ios objective-c modalviewcontroller uistoryboard

我一直收到这个警告,无论我尝试什么,我都不确定如何解决它。

Attempt to present <LoginViewController: 0x1f0b5010> on <ViewController: 0x1dda1670> whose view is not in the window hierarchy!

我的故事板中没有segue,因为我以编程方式调用模态视图:

//Load Login View if no username is found
NSLog(@"No username found");
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
LoginViewController *loginView = (LoginViewController *)
[storyboard instantiateViewControllerWithIdentifier:@"LoginViewController"];
[self presentViewController:loginView animated:YES completion:nil];

这是我的故事板的图像:

enter image description here

谢谢!!!

4 个答案:

答案 0 :(得分:4)

如果您尝试在ViewDidload中展示视图,则会产生错误。

如果你想使用它,你可以使用performselector而不是在一段时间内调用这段代码。

答案 1 :(得分:0)

如果您有此代码在viewDidLoad方法中显示模态视图控制器。然后将其移至viewDidAppear:方法。

答案 2 :(得分:0)

我认为并且还将其置于评论中您将该函数调用到ViewDidLoad: 我遇到了一个问题,即我试图在modalViewController方法中提出viewDidLoad:。 然后我将函数移到ViewDidAppear: 还有一件事需要解决,我们可以使用performselector

由于viewcontroller's window视图在加载时不在hierarchy viewDidLoad (当发送viewDidAppear:消息时),但是在它被呈现之后(当发送{{1}}消息时)它在窗口层次结构中。

答案 3 :(得分:0)

您将.h或.m文件中的.h或扩展名中的“loginView”声明为全局,并将其合成。

@property(strong, nonatomic)LoginViewController *loginView;

它将解决您的问题:)