我一直收到这个警告,无论我尝试什么,我都不确定如何解决它。
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];
这是我的故事板的图像:
谢谢!!!
答案 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;
它将解决您的问题:)