2

私はナビゲーションコントローラーアプリを持っています。

タブバーをビューにプッシュします。タブは機能しており、タイトルが変更され、完璧です。現在、タブの 1 つにリストがあり、タブバー内の子ページにリンクしようとしています。

NextViewController *nextController = [[NextViewController alloc] initWithNibName:@"ProfileDetailController" bundle:nil];
[self.navigationController pushViewController:nextController animated:YES];

何も起こりません。これが機能するコース:

self.view = nextController.view;

タブバー内でこのサブページにプッシュし、ナビゲーションバーのボタンを変更できるようにしたいと考えています。これは可能ですか?

4

3 に答える 3

3

UITabBarControllerUINavigationController?に押し込んでいるように聞こえます。Apple のドキュメントから、タブ バー コントローラーをナビゲーション コントローラーにプッシュすることはできません。

おそらくやりたいことは逆です:UINavigationControllerタブ項目として s を持つタブ バー コントローラーを用意します。これは、iPod アプリや電話アプリなどのインターフェイスに似ています。

于 2009-07-29T21:28:15.240 に答える
0

私はAlexに同意します-ナビゲーションコントローラー内のTabBarControllerは良いUIパターンのようには見えません。

とにかく、あなたの質問に答えるために:あなたはタブバーコントローラーを介してナビゲーションコントローラーにアクセスしようとしましたか?

self.tabBarController.navigationController

これが機能するかどうかはわかりませんが、試してみてください。

于 2009-07-29T22:36:15.933 に答える
0

簡単な解決策を見つけたと思います。

ビューをプッシュするクラスで、ローカルUINavigationControllerをプロパティとして宣言します。

@interface userMenu : UIViewController  {
UINavigationController *navigationController;
}
@property (nonatomic, retain) UINavigationController *navigationController;

それを合成することを忘れないでください。

あなたのクラスでtabBarController

NSArray *viewControllersArray = [self.tabBarController viewControllers];

userMenu *childUserMenu = (userMenu*) [viewControllersArray objectAtIndex:0];
childUserMenu.navigationController = self.navigationController;

その後、あなたはすることができます[self.navigationController pushViewController:nextController animated:YES];

于 2011-05-08T10:25:59.510 に答える