如何以编程方式刷新UIViewController?

我有一个ViewController用户从UIScrollView中select一个卡片(一个自定义的UIButton)。 我拦截了触摸事件select卡并识别出来,然后将其从数据源中删除,但仍然存在于UISubView中。 我如何摆脱它? 刷新视图应显示从视图中删除。 我怎么做?

你可以在两个地方之一做:

  1. 在你的viewcontroller
  2. 直接在视图中

你需要调用函数setNeedsDisplay

  1. 如果你从viewController那么[yourViewOutletVariable/viewParameter setNeedsDisplay];
  2. 如果你把它写在视图本身然后[self setNeedsDisplay];

希望这可以帮助

您可以让视图控制器观察模型或手动更新视图。

我不是很清楚你的问题,你的观点还剩下什么?

为了在模型更改时自动更新视图,我build议使用ReactiveCocoa 。

一旦你掌握了你的观点:

 UIView *v = ...; [v removeFromSuperview]; 

调用removeFromSuperview之后,也可以在滚动视图上调用setNeedsDisplay方法。

如果你的观点是刷新“UIViewController”,那么:

 [self viewDidLoad];