繁体   English   中英

Objective-C:如何从通用应用程序中的AppDelegate移出?

[英]objective-c : How to move from AppDelegate in Universal app?

我正在开发通用应用程序

imageTracker_iPhone.xib
imageTracker_iPad.xib
imageTracker.h
imageTracker.m

我想从AppDelegate_iPhone移到imageTracker。 我在didFinishLaunchingWithOptions这样做,但是在我使用此代码之前它不起作用

imageTracker *vRDi = [[imageTracker alloc] initWithNibName:@"imageTracker_iPhone" bundle:nil];
        [self.view addSubview:vRDi.view]; 

但是它给不是结构或联合的成员“视图”提供了错误请求 即使代码像

[window addSubview:vRDi.view];

现在该功能如下所示,并且不起作用。 我想从AppDeligate转到imageTracker。 请帮忙

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {            

    [window addSubview:imageTracker.view];    
    [self.window makeKeyAndVisible];

    return YES;    
}

在这种情况下,它不会移动到imageTracker_iPhone,因为它没有告诉任何要移至该文件的位置,因此想知道如何知道将哪个文件移动到imageTracker_iPhone或imageTracker_iPad。

您可能需要设置委托窗口的rootViewController来激活您的第一个控制器。 (如果您从单个控制器(非故事板模板)创建新的测试应用,则可以在didFinishLaunchingWithOptions:中看到所需的代码类型。)

编辑:实际上,它甚至比这更容易。 如果在创建单个视图控制器项目时指定通用应用程序,它将创建确切的代码以测试哪种设备并加载匹配的.xib文件。 (至少Xcode 4.2。)

您的代码应该是这样的

imageTracker *vRDi;
Bool isiPhone = UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone;
if(isiPhone)
  vRDi = [[imageTracker alloc] initWithNibName:@"imageTracker_iPhone";
else
  vRDi = [[imageTracker alloc] initWithNibName:@"imageTracker_iPad";

并确保您在xib和文件所有者中的connect view插座均为“ imageTracker”类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM