按下按钮时刷新容器视图

8

我有一个包含UITableView的容器视图的UIViewController

UITableView中有一个使用来自初始UIViewcontroller的变量的NSPredicateNSFetchController(希望你还在跟我)。

当用户更改容器视图时,其中一个实例没有更新。如何在发生这种情况时强制重新加载/更新容器视图?我找了一下,但在这个主题上没有看到太多内容。

具体来说,我有一个UIDatePicker,它会更改按钮上的日期。这需要更新。

enter image description here


你的意思是你有一个容器视图,它包含了一个表视图控制器(而不仅仅是一个表视图)? - rdelmar
是的,抱歉,我的错误。已经更新并附上图片。 - memyselfandmyiphone
2个回答

15

从最初的UIView控制器,您可以使用self.childViewControllers[0]获取对表视图控制器的引用。因此,您需要这样做:

UITableViewController *tbc = (UITableViewController *)self.childViewControllers[0];
[tbc.tableView reloadData];

谢谢你提供代码,但是我没有运行成功。不想显得愚蠢,但它应该放在哪里? - memyselfandmyiphone
@AlbaClan,我不知道,这是你的应用程序 - 我真的不知道你想做什么。 reloadData 可能不是正确的方法,但一旦你有了 tableViewController 的引用,你就可以在那个控制器里做任何你通常所做的事情。 - rdelmar

0

你写道那里有UIViewController而不是UITableViewController - 如果你有UIViewController,你必须在那里有一个属性。我假设这里一切都没问题...但是要检查一下。

当我使用容器视图工作时,我会通过添加元素来完成:

_someVC = [self.storyboard instantiateViewControllerWithIdentifier:@"SomeVC"];
[self addChildViewController:_someVC];
_someVC.view.frame = _containerView.bounds;
[_containerView addSubview:_someVC.view];
[_someVC didMoveToParentViewController:self];

不要使用IB。希望这有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接