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:我在 View 1 的 Table View 上应用 Search,如果单击 View 4 SignOut 按钮,我想删除 Search。如果单击视图 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

当用户点击注销时,您不应该分配新的视图控制器,而是应该执行以下操作

- (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 回答
0

最后我得到了问题2的解决方案:

我将 NSUserDefault BOOL 设置为 NO,并且在 ViewWillAppear 中,无论搜索是否打开,我都会获得 UserDefaults 值。

点击退出按钮:

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

在视图 1 上:

       isSearchingRecords = [[NSUserDefaults standardUserDefaults] boolForKey: @"SearchingON"];

    if (isSearchingRecords)
    {
        self.btnSearchCancel.hidden = NO;
    }else
    {
        self.btnSearchCancel.hidden = YES;
    }

但是找不到问题 1 的解决方案 - 通过另一个选项卡弹出视图,如果有人有任何想法,请告诉我!

于 2012-06-01T10:45:23.407 回答