2012-06-20 50 views

回答

3

創建一個新的同名..讓假設你的視圖控制器的名字是「NewViewController」 ..您的廈門國際銀行將成爲iphone NewViewController~ipad爲iPad和NewViewController~iPhone ..所以當你實現initWithNibName只寫基本的名字對於你xib這是NewViewController和iOS將關注基於當前使用的平臺調用匹配xib ..並且不要忘記在新的xib中將文件所有者的自定義類指派爲您的新類,如圖像下面。

enter image description here

在創建新的廈門國際銀行查看這些圖片:

enter image description here

enter image description here

+0

這意味着完全我們需要創建2.h文件和2.m文件具有相同的名稱。我正確嗎? – user1400581

+0

不,一個.h和一個.m,和兩個xib。再次閱讀我的答案 –

+0

如何創建帶有.h和.m文件的xib。 – user1400581

0

Malek_Jundi對如何創建並加載iphone筆尖文件和一個明確的指引iPad兼容。

如果你想爲每個個案(iPhone或iPad)創建不同的類,你可以使用IF語句是這樣的:

UIViewController *target; 
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { 
    target = [[NewViewController alloc] initWithNibName:@"NewViewController" bundle:[NSBundle mainBundle]]; 
} else { 
    target = [[NewViewController_ipad alloc] initWithNibName:@"NewViewController" bundle:[NSBundle mainBundle]]; 
} 

但我懶得輸入「IF」語句多次在我的代碼爲iphone/ipad創建特定的類。我有一個替代方法:

- (Class)idiomClassWithName:(NSString*)className 
{ 
    Class ret; 
    NSString *specificName = nil; 
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) { 
     specificName = [[NSString alloc] initWithFormat:@"%@_ipad", className]; 
    } else { 
     specificName = [[NSString alloc] initWithFormat:@"%@_iphone", className]; 
    } 
    ret = NSClassFromString(specificName); 
    if (!ret) { 
     ret = NSClassFromString(className); 
    } 
    return ret; 
} 

- (void)createSpecificNewController 
{ 
    Class class = [self idiomClassWithName:@"NewViewController"]; 
    UIViewController *target = [[class alloc] initWithNibName:@"NewViewController" bundle:[NSBundle mainBundle]]; 
    //... 
} 
相關問題