1

私はタブバーアプリケーションに取り組んでいます。

                           TAB-BAR CONTROLLER
                                   |
          _______________________________________________________
         |                |                 |                  |

       View 1           View 2            View 3            View 4
        |                 |
     SearchingON       Detail View

問題 1 :ボタン (サインアウトとしましょう) があり、ビュー 4 にあるボタンをクリックすると、ビュー 2 の詳細ビューをポップしたいと考えています。

そのため、新しいログイン後、新しいユーザーは詳細ビューにアクセスできません。

私が試してみました :

 if ([[NSUserDefaults standardUserDefaults] valueForKey:@"IsChattingON"])
 {
    ChatDetail *chat = [[ChatDetail alloc] initWithNibName:@"ChatDetail" bundle:nil];

    [chat BackButtonClicked:nil];
 }

詳細ビューの戻るボタンで私のコードは次のとおりです。

-(IBAction)BackButtonClicked:(id)sender
{

 [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"IsChattingON"];

 [self.navigationController popViewControllerAnimated:YES];
}

詳細ビューが開いているかどうかに関係なく、ブール値を持つユーザーデフォルト。

問題 2 : ビュー 1 のテーブル ビューに検索を適用していて、ビュー 4 のサインアウト ボタンがクリックされた場合に検索を削除したい。ビュー 4 のサインアウト ボタンがクリックされた場合、ビュー 1 を更新したい。

検索を削除するために、このコードを実行しましたが、目的の結果が得られませんでした。

 PeopleController *People = [[PeopleController alloc] initWithNibName:@"PeopleController" bundle:nil];

 People.isSearchingRecords = NO;

これまで popViewControllers について検索してきましたが、このシーンが見つかりません。この機能を実現する方法を教えてください。

4

3 に答える 3

0

appDelegate にナビゲーション コントローラーのインスタンスを保持していると仮定すると、これを試すことができます。

NSArray *viewNavStack = appDelegate.viewNavController.viewControllers;
    if ([viewNavStack count] > 1) {
        [appDelegate.overviewNavController popToRootViewControllerAnimated:NO];
    }
于 2012-06-01T06:41:32.973 に答える
0

ユーザーがログアウトをタップしたときに新しいView Controllerを割り当てるべきではなく、代わりに次のことを行う必要があります

- (void) logOut
{
   //get the view 2
   //you should have a way to access view 2

   [view2 closeChatView];
}

//On view 2 maintain a reference of chat detail controller
- (void) closeChatView
{
   [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"IsChattingON"];

   //chat is the reference to the chat details controller
   [chat.navigationController popViewControllerAnimated:YES];
}
于 2012-06-01T06:29:47.537 に答える