在推送数据时返回上一个视图

时间:2012-04-27 11:36:54

标签: iphone objective-c ios uiviewcontroller uinavigationcontroller

我有一个地方列表,其右侧导航栏项链接到过滤器页面。我想在过滤器页面上设置参数,只需按一下按钮就可以回到地方列表,同时随身携带数据并刷新上一个视图。我按下按钮时正在执行此操作:

-(IBAction)save:(id)sender
{
    PlaceList *placelist = [[PlaceList alloc] initWithNibName:@"PlaceList" bundle:nil];
    placelist.searchTxt = self.searchTxt.text;
    placelist.type = self.type;
    [self.navigationController pushViewController:placelist animated:YES];
    [placelist release]; 
}

然而,这会在导航控制器中创建一个新表,并为过滤器留下一个后退按钮,例如。首页 - > Placelist-> Filter-> PlaceList->当我想要的只是Home - >时,过滤它的永无止境的循环。 Placelist - >过滤,但数据可以向后推。感谢。

3 个答案:

答案 0 :(得分:3)

除了推送视图控制器之外,你需要选择pop选项,一旦你执行pop,将调用PlaceList的viewWillAppear,你正在使用tableview,你可以在那里获取和重新加载数据。没有弹出就没有必要一次又一次地推动。

答案 1 :(得分:1)

您需要POP视图,但我假设您希望将过滤后的值转换为第一个视图, 所以你有像

这样的选项

KVO

代表

如果你需要一个起点,我强烈建议使用代表, 看看这个网址dismissModalViewController AND pass data back

答案 2 :(得分:0)

回家后 - > Placelist-> Filter,在Filter中而不是推视图只需使用以下

    [self.navigationController popViewControllerAnimated:YES];

这将从堆栈中删除过滤器视图,并且您的Placelist将可见.....