2016-08-01 13 views
0

machen Ich habe iPad spezifische Anwendung. Ich möchte das gleiche auch auf dem iPhone spielen. Meine App hatte Xib, die Größenklasse "wRegular hRegular" mit vielen Auto-Layout-Einschränkungen verwendet. Ich möchte dies in die Größenklasse von WaNY hAny umwandeln. Ich weiß, dass es zwei Möglichkeiten gibt, dies zu erreichen, entweder mithilfe des automatischen Layouts oder durch Erstellen einer anderen XIB-Datei nur für das iPhone. Ich möchte mit separaten Xib-Dateien gehen Aber wie mache ich diese Dateien in XCode 7? Und wie wird das funktionieren?Wie seperate xib für iphone aus bereits bestehenden für ipad

+3

Mögliches Duplikat von [Probleme beim Laden eines separaten XIB für iPad oder iPhone] (http://stackoverflow.com/questions/5306346/trouble-with-loading-a-separate-xib-for-ipad-ori-phone) oder [http://stackoverflow.com/questions/13496218/xib-for-iphone-and-ipad](http://stackoverflow.com/questions/13496218/xib-for-iphone-and-ipad) – Lion

Antwort

0

Erstellen Sie einfach neue XIB-Datei mit dem Namen, was auch immer Sie die UIViewController mit folgenden Code

ViewControllerName *vc = [[ViewControllerName alloc] initWithNibName:@"" bundle:nil]; 

In Viewcontroller überschreiben geben und laden wollen - (id) initWithNibName: (NSString *) nibNameOrNil Bundle: (NSBundle *) nibBundleOrNil Verfahren, bei dem für das Gerät überprüfen sind, iPhone oder iPad folgenden Code

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    NSString * nibNameOrNil; 
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){ 
     // iPad 
     nibNameOrNil = @“iPad_XIB_NAME” 
    } else { 
     // iPhone 
    } 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) 
    { 
     // Custom initialization 
    } 
    return self; 
} 

dies Ihren XIB nach Ihrem Gerätetyp nennen.

Verwandte Themen