Xcode4.1のユニバーサルアプリテンプレートを使い始めるのに苦労しています。私はここでkotancodeによって設定された基本原則に従っています。問題は、関連するViewControllerをロードすることです。例としてiPhoneの部分に焦点を当てます。XIBを使用せずにUIViewControllerのサブクラスを「マスター」ビューコントローラークラス(共有コードが配置される場所)として作成します。次に、これをサブクラス化して、BaseViewController_iPhoneというiPhone固有のUIViewControllerクラスを作成します。今回は、XIBを使用します。
iPhone固有のアプリデリゲートヘッダーは次のように設定されます。
#import "TestAppDelegate.h"
#import "BaseViewController_iPhone.h"
@interface TestAppDelegate_iPhone : TestAppDelegate {
BaseViewController_iPhone *viewController;
}
@property (nonatomic, retain) IBOutlet BaseViewController_iPhone *viewController;
@end
実装では、applicationdidfinishlaunchingwithoptionsメソッドをオーバーライドしようとします。
#import "TestAppDelegate_iPhone.h"
@implementation TestAppDelegate_iPhone
@synthesize viewController;
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[self.window addSubview:viewController.view];
[self.window makeKeyAndVisible];
return YES;
}
-(void)dealloc {
[viewController release];
[super dealloc];
}
@end
これは機能していないようで、正常にコンパイルされて実行されますが、新しいView Controllerと対応するXIBは表示されません(テンプレートの元のメインウィンドウxibは表示されます)。私は非常に単純なものを見逃していると確信していますが、私は長い間グーグルで無駄に過ごしてきました。ありがたいことにどんな助けも受けました。
ありがとうございました。