切换回两个TableView

时间:2014-03-19 12:48:05

标签: ios objective-c uitableview

我只有两个视图控制器,它们都有一个表视图。然后我有一个显示信息的视图控制器。当用户单击任一表视图上的行时,它将转移到信息视图控制器。

当用户在信息视图控制器上时,我需要一个返回原始状态的后退按钮(可以是两个视图控制器中的一个,其上有一个表视图)。

我已经考虑过使用segues返回到特定的表视图控制器,但是当我这样做时,表视图是空白的(因为我不想将信息传递回表视图视图控制器)。

我创造了这个:

- (IBAction)whereto:(id)sender
{
    if(self.goback == @"a")
    {
        NSLog(@"%@", self.goback);
        // go back to RemainderDealViewController
        ReminderDealsViewController *newView = [self.storyboard instantiateViewControllerWithIdentifier:@"ReminderDealsViewController"];
        [self presentViewController:newView animated:YES completion:nil];

    }

    if (self.goback == @"b")
    {
        NSLog(@"%@", self.goback);
        // go back to ViewController

当按下后退按钮并且a或b取决于原始表视图控制器(我想要返回的那个)时,Whereto功能运行。

现在[self presentViewController不起作用]如果我使用segue它确实有效,但是tableview没有按原样填充。

任何人都可以提供建议吗?

3 个答案:

答案 0 :(得分:0)

对于UINavigationViewController,只需使用它来呈现一个viewcontroller

[self.navigationController pushViewController:prod animated:YES];

返回上一个viewController使用:

    [self.navigationController popViewControllerAnimated:YES];

要转到rootViewController使用:

    [self.navigationController popToRootViewControllerAnimated:YES];

要转到使用的controlcontroller堆栈中的特定视图控制器:

    [self.navigationController popToViewController:<#(UIViewController *)#> animated:<#(BOOL)#>];

希望这会有所帮助.. :)

答案 1 :(得分:0)

试试这个: -

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
ReminderDealsViewController *objSec=[storyboard instantiateViewControllerWithIdentifier:@"ReminderDealsViewController"];
[self.navigationController pushViewController:objSec animated:YES];

答案 2 :(得分:0)

来呈现一个viewcontroller

[self.navigationController pushViewController:prod animated:YES];

回去你可以使用:

[self.navigationController popViewControllerAnimated:YES];

或root     [self.navigationController popToRootViewControllerAnimated:YES];

或准确的控制器  //获取VIEWCONTROLLER

NSArray *controller =[self.navigationController  viewControllers];
[self.navigationController  popToViewController:controller animated:YES];