为iPad和iPhone选择视图开始
我的第一个应用程序是针对iPhone的,我决定也实现在iPad上使用的功能,如果是在打开iPhone或iPad时,我首先要选择要使用的视图,我在我的代表中写道:为iPad和iPhone选择视图开始,iphone,ipad,uiview,addsubview,Iphone,Ipad,Uiview,Addsubview,我的第一个应用程序是针对iPhone的,我决定也实现在iPad上使用的功能,如果是在打开iPhone或iPad时,我首先要选择要使用的视图,我在我的代表中写道: NSString *devy = [[UIDevice currentDevice]model]; if ([devy isEqualToString:@"iPad"]) { [window addSubview:viewController.viewCpuIpad]; [window makeKeyAndVisible
NSString *devy = [[UIDevice currentDevice]model];
if ([devy isEqualToString:@"iPad"]) {
[window addSubview:viewController.viewCpuIpad];
[window makeKeyAndVisible];
} else {
[window addSubview:viewController.view];
[window makeKeyAndVisible];
}
当iPhone还可以,但当我在iPad上打开它时,只会显示一个空白屏幕。。。。哪里错了
感谢苹果推荐的方式(取自Xcode的通用应用程序项目模板)是:
如果您不想使用IB,可以在view controller的loadView方法中创建视图,如下所示:
- (void)loadView
{
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
self.view = // create view for iPad.
} else {
self.view = // create view for iPhone.
}
}
(UI_USER_INTERFACE_IDIOM()是一个支持iOS 3.1及更早版本的宏。)当您在iPad上启动时,不要调用 [窗口添加子视图:viewController.viewCpuIpad]强> 试试看 viewController.view=viewCpuIPad强> [窗口添加子视图:viewController.view]强> 我的建议是,在iPad上启动时,不要更新viewController.view属性 默认情况下,当您创建nib时,viewController.view设置为nib视图,该视图在iPhone上显示 对于iPad,您应该将此[viewcontroller view]属性更新到指定的视图。另外,正如Hoshi所建议的,拥有两个不同的Nib文件也是一个好方法,这样您就可以根据条件加载所需的Nib
希望这有帮助:)是
viewController。viewcuipad
blank?viewcuipad是一个包含更多图像和数据的UIView。我调用方法中的代码“-(void)applicationdifinishLaunching:(UIApplication*)application”的delegate您尝试过记录有关它和viewController
的信息吗?另外,请尝试记录devy
以查看它的容量。不要使用[[UIDevice currentDevice]model]检查iPad是否可用。相反,请使用UI\u USER\u INTERFACE\u IDIOM()==UIUserInterfaceIdiomPad。
- (void)loadView
{
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
self.view = // create view for iPad.
} else {
self.view = // create view for iPhone.
}
}