Interface Builderでタブバーを設定するために、「タブ付きアプリケーション」としてxcode 3でプロジェクトを開始しました。xcodeプロジェクトをタブ付きバーからプレーンに変更するにはどうすればいいですか?
私はプログラムでタブバーウィンドウを作成するのがよい理由があります。
私はたくさんのものを読んで、コード化されたタブバーで新しいプロジェクトを作成することができました。したがって、新しい空のアプリケーション(xcode 3では「ウィンドウベースアプリケーション」と呼ばれていたと思います)に基づいて、最初からタブバープロジェクトを作成する方法を理解したと思います。
しかし、「タブ付きアプリケーション」として開始された進行中のプロジェクトにそのコードを採用しようとすると、常に次のように表示されます。「アプリケーションの起動時にアプリケーションが起動すると、コンソール。
プロジェクトタイプを「タブ付きアプリケーション」から「空のアプリケーション」に遡って変更するにはどうすればよいですか? または、新しいプロジェクトを最初から開始し、すべてのソースファイルを古いものからコピーする唯一の方法はありますか?
はBTW:エラーメッセージをグーグルで、この優れたスレッドに私を導く:提案ソリューションの Applications are expected to have a root view controller at the end of application launch
残念ながらどれも私のために動作しません。そういうわけで、私の問題は最初からさまざまなタイプのプロジェクトに関係していると思います。
編集:現在のターゲットのコンパイラマクロ「FREE」に設定されたの
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[[UIApplication sharedApplication] setStatusBarStyle: UIStatusBarStyleBlackTranslucent];
#ifdef FREE
window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
self.tabBarController = [[[FcTabBarController alloc] init] autorelease];
VotingMenuTVC *vc0 =[[[VotingMenuTVC alloc] initWithNibName:@"VotingMenuTVC" bundle:nil] autorelease];
ChannelsTVC *vc1 =[[[ChannelsTVC alloc] initWithNibName:@"ChannelsTVC" bundle:nil] autorelease];
NSArray* controllers = [NSArray arrayWithObjects:vc0, vc1, nil];
tabBarController.viewControllers = controllers;
// Add the tab bar controller's current view as a subview of the window
float ver = [[[UIDevice currentDevice] systemVersion] floatValue];
if (ver >= 4.0) {
self.window.rootViewController = self.tabBarController;
} else {
[window addSubview:[tabBarController view]];
}
[window addSubview:[tabBarController view]];
NSLog(@"RootViewController: %@",self.window.rootViewController);
NSLog(@"TabBarController: %@",self.tabBarController);
#else
float ver = [[[UIDevice currentDevice] systemVersion] floatValue];
if (ver >= 4.0) {
self.window.rootViewController = self.tabBarController;
} else {
[window addSubview:[tabBarController view]];
}
#endif
[self.window makeKeyAndVisible];
return YES;
}
:私はdidFinshWithLaunchingコードを提供するように頼まれました。さもなければ、それはMainWindow.xibがまだそこにある(そしてうまく動作する)もう一つの才能のためにコンパイルします。現在、MainWindow.xibはBoundleの一部であり、FREEが設定されているものでもあります。しかし、それはターゲットのplistファイルのメインインターフェイスとして設定されていません。メインインターフェイスは空白です。
NSLogステートメント(およびデバッグ解析)によると、toolBarControllerプロパティは問題ありませんが、ウィンドウのrootViewControllerはnilです。これはわかりません。
Firoze LafeerからMainWindow.xibが依然として存在することを尋ねる質問がありましたので、それを変更する必要があります。私は結果を捨てて後でこの記事を更新します。
MainWindowのペン先はまだありますか?ウィンドウとタブバーのコントローラーはそこにありますか?あなたのアプリケーションは何ですか:didFinishLaunchingWithOptions:どのように見えますか?おかげさまで –