我知道这个问题已经被问了一百万次了,但是在我检查过的许多问题中我找不到合适的答案。
我有一个自定义视图控制器,我试图在用户点击按钮时显示视图控制器(所以viewDidLoad
这里没有“臭名昭著的问题”)。
这是我在用户点击按钮时运行的代码:(我有视图控制器的 NIB,我有一个导航控制器)
ICLoginViewController *loginViewController = [[ICLoginViewController alloc] initWithNibName:@"ICLoginViewController" bundle:[NSBundle mainBundle]];
//assuming we have a navigation controller.
UINavigationController *navigationController= (UINavigationController*)[[UIApplication sharedApplication] keyWindow].rootViewController;
[navigationController.topViewController presentViewController:loginViewController animated:YES completion:nil];
当我Warning: Attempt to present <ICLoginViewController: 0xa08a810> on <UINavigationController: 0xa45de70> whose view is not in the window hierarchy!
尝试呈现视图控制器时出现错误。屏幕上什么也没有发生。如果我多次点击我会得到同样的错误,但仍然没有任何反应。navigationController
我已经设置了一个断点并验证了它navigationController.topViewController
不是nil
。我使用情节提要(如果有帮助),但不适用于我要显示的自定义视图控制器。(从长远来看,我想让它成为一个独立于应用程序的库,所以我没有在其中引用任何特定于应用程序的模块)为什么会出现此错误?