簡體   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