pushViewController 不适用于 IOS11 SDK

pushViewController not working with IOS11 SDK

下面的代码没有像当前在应用商店中那样更改为视图控制器。唯一的变化是新的 Xcode/IOS11 SDK。我做了一些 google 搜索,发现其他一些人也有同样的问题,但能够通过删除派生数据并重新启动或转动 animated:NO 来解决,但对我来说都没有用...

代码如下:

- (void)viewDidAppear:(BOOL)animated {  
     [super viewDidAppear:animated];  

     // Set up observers etc code omitted....  

     [self.navigationController setNavigationBarHidden:YES animated:YES];    

     Home *viewController = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"Home"];  
     NSLog(@"Nav Controller: %@",self.navigationController); // Output: Nav Controller: <UINavigationController: 0x7fc2d182d800>  
     NSLog(@"View Controller: %@",viewController); // Output: View Controller: <Home: 0x7fc2d0717cc0>  
     [[self navigationController] pushViewController:viewController animated:YES]; // No change to different view controller.  
}  

如有任何帮助,我们将不胜感激!谢谢!

[self.navigationController pushViewController:viewController animated:YES];

试试这个

我们面临同样的问题,推送视图控制器无法从 viewDidAppear 开始工作。当我们调查问题时,我们发现导航 viewController 的视图位于顶部但未出现在屏幕上。尝试将控制器推入 DispatchQueue.main.async { } 块,它会起作用。

PS。该问题已在 iOS 11.1 中解决。