Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 警告“;尝试显示其视图不在窗口层次结构中的ViewController-目标C_Ios_Objective C - Fatal编程技术网

Ios 警告“;尝试显示其视图不在窗口层次结构中的ViewController-目标C

Ios 警告“;尝试显示其视图不在窗口层次结构中的ViewController-目标C,ios,objective-c,Ios,Objective C,我试图调用一个控制器,如果有响应错误,并将用户重定向到登录控制器 UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"EventManagerStoryboard" bundle:[NSBundle mainBundle]]; LoginViewController *loginController = [storyboard instantiateViewControllerWithIdentifier:@"loginI

我试图调用一个控制器,如果有响应错误,并将用户重定向到登录控制器

 UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"EventManagerStoryboard" bundle:[NSBundle mainBundle]];
LoginViewController *loginController = [storyboard instantiateViewControllerWithIdentifier:@"loginID"];
[loginController viewDidLoad];
loginController.showOnlyLoginForm = YES;

[self presentViewController:loginController animated:YES completion:Nil];
我面对这个警告-

尝试显示尝试在ProfileController:0x7fc9583118e0(其视图不在窗口层次结构中)上显示LoginViewController:0x7fc958201130


不要在viewDidLoad中运行此代码在ViewDidDisplay中尝试

 [self presentViewController:loginController animated:YES completion:Nil];
编辑:

如果实现navigationController,请在appDelegate中使用

 [(UINavigationController *)self.window.rootViewController pushViewController:vc animated:YES];

实际上,我正在ConnectionIDFinishLoadingDoes ProfileController中运行,或者在您实现ConnectionIDFinishLoadingI的位置,在我的应用程序代理上实现ConnectionIDFinishLoading。当出现响应者错误时,我会强制用户注销。您可以实施导航控制器来完成此操作,因为appDelegate中没有viewController来显示您的登录,或者使用通知中心/代理通知另一个viewController来显示您的登录,而不是appDelegate,但您的日志标识您要显示它在名为ProfileController的viewController中,即使是自存在的。。。。将不会在应用程序代理中运行我建议使用“loadViewIfNeeded”而不是直接调用
viewDidLoad
Callback您不应该自己调用
viewDidLoad
查看控制器的视图时会自动调用它loaded@MilanNos没有区别。我的便条是关于打电话给
viewDidLoad
,它不应该解决您的问题。不管怎么说,错误消息是非常不言自明的。当未显示
self
时,将调用您的代码,因此
self
无法显示其他视图控制器。但是如果没有更多的背景,没有人能更好地帮助你。可能会有几十个或数百个原因导致这种情况发生,但在没有看到其余代码的情况下,我们只能猜测。。换句话说,您显示的代码是正确的,问题在于代码的其余部分。