iOS:解除Popover后重绘父视图

时间:2013-01-25 16:13:35

标签: ios

我有一个父视图控制器和另一个用于弹出窗口的视图控制器。弹出窗口被正确解雇。按下父视图控制器上的按钮将按预期生成弹出窗口。弹出窗口视图中有一个按钮,当按下该按钮时,应该更改父视图上按钮的颜色。

我遇到的问题是当我按下弹出窗口中的按钮时,它会解散,但父视图控制器中的按钮不会改变。

我在父视图控制器中尝试了[self.view setNeedsDisplay]。我试过在popover委托方法和- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController方法中调用它。永远不会调用后一种方法。调用前一个方法,但它不会重绘父视图控制器内的视图。

我尝试使用performSelector: withObject: afterDelay:为重绘添加延迟,但根本没有运气。

我试图重新绘制按钮对象本身,它不起作用。在调用removeFromSuperview之前我还没有运气就打电话给setNeedsDisplay

根据我所做的研究,我觉得有必要声明我没有使用此应用程序进行任何类型的多线程。此外,这个小应用程序是使用Storyboard构建的。

1 个答案:

答案 0 :(得分:0)

使用setNeedsDisplay时我犯了一个简单的错误。阅读文档后,我意识到如果有一些内容更改,setNeedsDisplay将重新绘制。我没有正确更改内容,因此没有触发更改。

我在委托方法期间更改了按钮的颜色,该方法也关闭了弹出窗口。颜色变化后,我打电话给setNeedsDisplay。这很好地解决了。