我拥有一个发布的通用应用程序,多年来运行良好。现在,由于iOS13更新,它开始显示为纯白色屏幕。唯一的例外是,如果我在iPad上运行它并更改设备的方向。比该应用程序终于像往常一样出现。我在Application方法的委托文件中放置了一个断点,在viewDidLoad方法的rootviewcontroller中将另一个断点放置了。在iOS 12中,两个断点都将命中,一切都将按原样运行。在iOS 13中,永远不会达到rootviewcontroller断点。该应用程序非常旧,使用的是没有Storyboard的普通XIB文件。
我的代表中的代码是这样;
#import "AppDelegate.h"
#import "RootViewController.h"
@implementation AppDelegate
@synthesize window, splitViewController;
@synthesize managedObjectContext = _managedObjectContext;
@synthesize managedObjectModel = _managedObjectModel;
@synthesize persistentStoreCoordinator = _persistentStoreCoordinator;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[self.window setRootViewController:self.splitViewController];
[self.window makeKeyAndVisible];
return YES;
}
答案 0 :(得分:0)
与iOS 13拆分视图控制器有关的问题。如果您将导航控制器嵌入到“主/细节”视图控制器中,则仅加载导航控制器。
要解决该问题,请从UISplitViewController创建一个自定义类,并将其分配给情节提要中的splitviewcontroller,然后以编程方式将Navigation控制器和masterViewcontroller添加到该UISplitViewController。那应该正确加载您的视图。这段代码在UISplitviewcontroller类的viewdidload中或将出现。 示例代码。
MasterViewController *master = [[MasterViewController alloc] init];
UINavigationController *tableViewNavigationController = [[UINavigationController alloc] initWithRootViewController:master];
UINavigationController *navC = [[UINavigationController alloc] init];
self.viewControllers = [NSArray arrayWithObjects:tableViewNavigationController,navC, nil];
此问题解决了我的iOS出现类似问题。希望能有所帮助。