Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 通用应用程序的单个应用程序委托_Iphone_Delegates_Ios Universal App - Fatal编程技术网

Iphone 通用应用程序的单个应用程序委托

Iphone 通用应用程序的单个应用程序委托,iphone,delegates,ios-universal-app,Iphone,Delegates,Ios Universal App,我正在做一个通用应用程序,它有两个分别用于iPhone和iPad的应用程序代理。我是否可以使用设置为yes的bool值(如bool-isiPhone和方法+(AppDelegate*)实例)在单个应用程序委托中检查设备。那么,我如何启动不同的视图?我得到了一些这样的代码片段 @interface AppDelegate : NSObject <UIApplicationDelegate, NSFetchedResultsControllerDelegate> { UIWindow*

我正在做一个通用应用程序,它有两个分别用于iPhone和iPad的应用程序代理。我是否可以使用设置为yes的bool值(如
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