0

我正在开发一个通用应用程序

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 哪个文件。

4

2 回答 2

0

您可能希望设置委托窗口的 rootViewController 以使您的第一个控制器处于活动状态。(如果您从单个控制器、非故事板模板创建新的测试应用程序,您可以在 didFinishLaunchingWithOptions: 中看到所需的代码类型。)

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

于 2012-04-03T13:29:22.767 回答
0

你的代码应该是这样的

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 和文件所有者中的连接视图出口是“imageTracker”类。

于 2012-04-03T14:13:08.363 回答