は、私は次の質問を持っているTabBarController NAvigationControllerとのUIViewController
UItabbarController
....いくつかのUINAvigationControllers ....
*( 1)UINavigationController
UIViewController (UItableView) - When select one row it goes to...(by push) to:
UIViewController (UItableView) - And here the same than before, for each row i open a new tableview....
私の問題i私がタブバー項目をクリックすると、私はこれを見た最後の時間のようなviewControllerビューを見て、*(1)最初に別の時間を表示する(私が好きなように)リロードしないでください
私は私はタブバー項目をクリックするたびにsthを書く。このタブバー項目の最初のビューをリロードする。
PD:私は呼び出している:[theTableView reloadData];メソッド "viewWillAppear"で 私のナビゲーションコントローラでは、View Controller(テーブルビューなど)があり、「didSelectRowAtIndexPath」メソッドで1つの行をクリックすると、別のView Controllerが「myController」を呼び出して作成されます。これは次の表のある行をクリックするたびに表示されます。
次に、viewWillAppearというメソッドでテーブルビューをリロードしないようにしてください。それは、次のビューコントローラがルートに挿入されたことを画面から取り除くことです。
私はリグですか?履歴書
:
私のアプリは、次があります:画面
- タブバーが、なぜですか?すべてのtabBarItemsがテーブルを表示しているので、ある行をクリックすると別のテーブルを開くと、.....
私の問題は、クリックすると1番目のメインテーブルに戻ってみたいと思いますタブバー。アプリがこれをしていない瞬間、このタブの最後の訪問であったスカリー(テーブルビュー)で続行します。 (私はNSLogを作ったので、それを表示しないので、私は2回クリックすると、はい、それは戻ってきますが、 "viewWillLoad"または "didSelectViewController"メソッドに入力しないので、完全に真実ではありません。
sketcheは、このことができます:
AppDelegate - > WelcomeScreen - > VideosTableViewController - > RElatedVideosTableViewController - > ..... ..... ....
第一のものは、表示することですようこそ画面(重要ではない、いくつかのボタンだけ)、このクラスでは、TabControllerを "localViewControllersArray"で初期化しました。これはNavControllerのNSMutableArrayで、それぞれ1つのViewControllerで初期化されています。
そこで私は、この歓迎画面内のボタンのいずれかを押したときに、私は次のステップではタブバーコントローラ(VideosTableViewControllerを表示します)
を翔、私は「DidSelectRowAtIndexPath」で、一列にクリックしたときに、私が作成RElatedVideosTableViewController、と私は「[... [自己navigationController]プッシュ: "私はアニメーション" 作成relatedvideoテーブルビュー:YES]で、これを押す。
と私もあります
追加:UITabBarControllerDelegate 追加します:
(ボイド)tabBarController:(UITabBarController *)tabBarController didEndCustomizingViewControllers: (にNSArray *)viewControllers 変更された:(BOOL)が変更{}
(ボイド)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(のUIViewController *)のViewController {IF([のViewController isKindOfClass:[UINavigationController クラス]) {[(UINavigationController *)のViewController popToRootViewContro ller:NO]; [TheTableView reloadData]; NSLog(@ "RELOAD"); }}
クラスの初期化時: [super.tabBarController setDelegate:自己]。
しかし、コンソールでは私が作っているNSLogはこの方法では実行されていません。
Imはリロードをしようなぜなら、私はテーブルを表示するたびにこれを使って連結メソッドを呼び出すからです。 –
私は私のコードにこれを追加、BT didSelectViewController方法で入力することなく、同じことをやって続けています。 私のappdelegateと残りの部分との間に、私はwelcomeScreen viewcontrollerを持っています。そこで、tabbarcontrolelrを宣言し、どこに行を置くかを指定します:self.tabbarController.delegate = self;このクラスに入っています。 私は、これはいくつかの違いを作る場合は知りません。 –
デリゲートを設定する行にブレークポイントを設定します。それが呼び出されない場合、あなたは(明らかに)他の場所に置く必要があります。おそらくあなたは呼び出されないinitメソッドに入れているでしょう。 –