TabBarControllerをビューにプッシュするにはどうすればよいですか?TabBarControllerをビューにプッシュ
このアプリケーションはビューベースです。アプリケーションでは、TabBarControllerを持つXIBがあり、TabBarをディスプレイにプッシュしたいと思います。私はすべてをやったが、今は何が間違っているのか分からない。ここで
はTabBarControllerをプッシュする必要があるコードです:
- (void)showTabBar {
TabBar *tbc = [[TabBar alloc] initWithNibName:@"TabBar" bundle:nil];
[self presentModalViewController:tbc animated:YES];
[tbc release];
}
この時点ではXIBで空のビューがあります。したがって、このコードを実行すると、ディスプレイは白です。また、TabBarControllerも表示されます。
ありがとうございました。
UPDATE:
私は、これらの2つの異なるクラスであると言うべきです。関数 "showTabBar"の基になっているクラスは、TabBarControllerをプッシュする必要があります。 2番目のクラスはTabBarです。 TabBarはTabBarControllerのデリゲートです。
だから私はこのような答えを変更しましたが、私は両方を試してみました:
[self presentModalViewController:tbc.tabBarController.view animated:YES];
エラーは次のようになります。
Incompatible Objective-C types 'struct UIView *', expected 'struct UIViewController *' when passing argument 1 of 'presentModalViewController:animated:' from distinct Objective-C type
UPDATE:
ねえ、エラーがなくなった。クール。 ;)
しかし、アプリケーションは終了しています。私はこれまでこの行動を見てきましたが、私は何をすべきか分かりませんでした。 デバッガコンソールは、これは言う:
2011-01-27 15:49:32.629 Touch[3657:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Application tried to present a nil modal view controller on target <StartUp: 0x9300f20>.'
これは、私がTabBarControllerなしで自分でTabBarを構築する必要があるということですか? – teawithfruit
私が知る限り、はい。コンパイラはUITabBarControllerのプッシュが間違っていると言っていないので、私は助けを得てドキュメントを読むまでこれがOKだと思ったので、私が作った1つのアプリケーションと同じ "間違い"をしました。暗黙の関係iOSは、parentViewController、tabBarController、navigationControllerを使ってあなたのために設定します)。私がやったことは、UIToolBarを作ることでした。私が中心になったUISegmentedControlを追加しました。しかし、UIToolBarItemをよく使うと、ほとんど同じ効果が得られます。しかし、ビューのプッシュ/ポップのロジックは失われます。 – LuckyLuke
通常のビューを使用して、TabBarを構築するために必要なTabBarのすべての項目を入力しますか? – teawithfruit