Iphone 通用应用程序的单个应用程序委托
我正在做一个通用应用程序,它有两个分别用于iPhone和iPad的应用程序代理。我是否可以使用设置为yes的bool值(如Iphone 通用应用程序的单个应用程序委托,iphone,delegates,ios-universal-app,Iphone,Delegates,Ios Universal App,我正在做一个通用应用程序,它有两个分别用于iPhone和iPad的应用程序代理。我是否可以使用设置为yes的bool值(如bool-isiPhone和方法+(AppDelegate*)实例)在单个应用程序委托中检查设备。那么,我如何启动不同的视图?我得到了一些这样的代码片段 @interface AppDelegate : NSObject <UIApplicationDelegate, NSFetchedResultsControllerDelegate> { UIWindow*
bool-isiPhone
和方法+(AppDelegate*)实例)在单个应用程序委托中检查设备代码>。那么,我如何启动不同的视图?我得到了一些这样的代码片段
@interface AppDelegate : NSObject <UIApplicationDelegate, NSFetchedResultsControllerDelegate> {
UIWindow* window;
BOOL isiPhone;
@property (nonatomic, retain) IBOutlet UIWindow* window;
@property (nonatomic, assign) BOOL isiPhone;
+ (AppDelegate*)instance;
@end
使用以下代码
id<UIApplicationDelegate> delegate = [[UIApplication sharedApplication] delegate];
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
AppDelegate_iPad *appDelegate = (AppDelegate_iPad *) delegate;
else
AppDelegate_iPhone *appDelegate = (AppDelegate_iPhone *) delegate;
id delegate=[[UIApplication sharedApplication]delegate];
if(UI\u USER\u INTERFACE\u IDIOM()==UIUserInterfaceIdiomPad)
AppDelegate_iPad*AppDelegate=(AppDelegate_iPad*)委托;
其他的
AppDelegate_iPhone*AppDelegate=(AppDelegate_iPhone*)委托;
当需要访问代理时。您可以使用标准方法,在XIB文件名的末尾添加~ipad
或~iphone
,以指定XIB分别用于ipad或iphone
所以你可能有:
MapView.xib
MapView~ipad.xib
DetailView.xib
DetailView~ipad.xib
AboutView.xib
AboutView~ipad.xib
它将为该平台选择最具体的一个,因此在iPhone上运行时,将加载MapView.xib
,而在iPad上加载MapView~iPad.xib
,我想知道同样的约定是否适用于AppDelegate。我的主要功能是否知道哪一个用于哪一个?它可以在您使用资源的任何地方工作。因此,是的,如果您将它用于MainWindow.xib,那么它将工作。
MapView.xib
MapView~ipad.xib
DetailView.xib
DetailView~ipad.xib
AboutView.xib
AboutView~ipad.xib