为ipad 3.2设置rootViewController不起作用

ful*_*100 1 iphone uinavigationcontroller ipad rootview

我做了一个简单的基于导航的应用程序.它非常适用于iphone,但它不适用于ipad 3.2模拟器和设备.

在applicationdidfinish事件中;

MainViewController *viewController = [[MainViewController alloc] initWithNibName:@"MainView" bundle:nil];
[self.navigationController pushViewController:viewController animated:NO];
self.window.rootViewController = self.navigationController;
[viewController release];
Run Code Online (Sandbox Code Playgroud)

它说这条线:

self.window.rootViewController = self.navigationController;
Run Code Online (Sandbox Code Playgroud)

[UIWindow setRootViewController:]:无法识别的选择器发送到实例0x4c22dd0

但它适用于ipad 4.2及以上版本.

我怎么能为ipad 3.2解决它?

Jes*_*her 5

UIWindow在iOS <4.0中没有rootViewController属性.因此,您需要检查版本(google it)然后设置rootViewController,或者view根据用户运行的版本将navigationController 作为子视图添加到窗口中,如下所示:

[self.window addSubview:self.navigationController.view];
Run Code Online (Sandbox Code Playgroud)

快速编辑:要检查是否可以使用rootViewController属性,可以检查是否[self.window respondsToSelector:@selector(setRootViewController)]返回TRUE或FALSE.