导航到已加载的主ViewController,而不再重新加载

时间:2013-05-22 08:08:54

标签: iphone ios cocoa api

我有一个主视图控制器从api加载一些数据,从那里我移动到另一个屏幕,显示特定交易的详细信息。我想回到主控制器,但是当我使用prepareForSegue时,它会返回到主控制器,但它再次加载数据进行api调用。我想保留主控制器的状态。

请帮助我如何保持视图控制器的状态以及如何从第二个控制器转到主控制器而不再重新加载它。

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self FetchDeals];
    [self Getdeals];
}

fetch deal方法进行api调用,getdeals将其填充到tableview中。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"Dealdetail"])
    {
        //NSLog(@"New controller");
        DealDetailController *detail = (DealDetailController *)[segue destinationViewController];

        detail.detailimage = imagepath;
    }
}

DealDetailController是我回到主控件的第二个视图控制器。

DealDetailController中的代码:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    MainappViewController *maincontrol = (MainappViewController *)[segue destinationViewController]; 
}

2 个答案:

答案 0 :(得分:1)

你真正想要使用的是'Unwind Segue'

This博客文章(有视频)介绍了如何执行此操作。

另请参阅this问题,答案指向WWDC 2012视频,其中包含Unwind segues。

答案 1 :(得分:0)

使用popViewController。它保留了国家。 你已经加载了mainViewController,这意味着它已经在stack.if你想再次这个viewController然后只需使用popViewController