我有一個通用的應用程序,我試圖共享一個viewController代碼。我有這樣的:動態加載xib但錯誤顯示
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
AboutController *screen = [[AboutController alloc] initWithNibName:@"iPhoneAboutController" bundle:nil];
screen.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:screen animated:YES];
}
else
{
AboutController *screen = [[AboutController alloc] initWithNibName:nil bundle:nil];
screen.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:screen animated:YES];
}
雖然這是加載,當我通過代碼,但它擊中了廈門國際銀行爲iPhone,但它似乎永遠是裝的iPad版。我知道這是因爲在iPhone的xib文件中,我手動添加了不同的背景圖像,並且它從不顯示。在iPhone模擬器中,它顯示了iPad屏幕外的版本。另外,如果我單步執行控制器中的代碼,它確實表明加載是iPhone,但顯示器是所有iPad對象。在iPhone xib中,我將文件所有者設置爲AboutController。
這是我第一次嘗試「共享代碼」。我知道我可以用相同的代碼創建單獨的類文件,但這似乎毫無意義。任何幫助是極大的讚賞。
地理...
我們可以看到AboutController的initWithNibName方法嗎?這可能是問題的出處。另外,這可能是放置這種邏輯的更好的地方。只是一個想法。 – picciano
是的,它確實有一個我註釋掉了,它仍然只加載iPad版本。 – George