我在搜索视图控制器中有一个按钮,它调用以下方法创建包含两个UIActionSheet
的{{1}}(用于选择搜索设置)。当用户选择第一个分段控件上的某个按钮时,我想禁用(UISegmentedControl
)第二个分段控件。问题是它不会重绘(因此它永远不会被禁用)。如果我在创建UIActionSheet时setEnabled:NO,那么它最初会被正确禁用。
我尝试通过调用setEnabled:NO
强制重写第二个分段控件和操作表,但这不起作用。
还在第二个分段控件上尝试了removeFromSuperview。
内置的UIActionSheet无法实现这一点吗?或者有更好的方式让我显示搜索设置?这是一款针对iOS5编写的iPhone应用程序。弹出窗口不适用于iPhone。我能想到的另一种方法是让设置显示在它自己的视图中,但我想避免这种情况。
[UIView setNeedsDisplay]
答案 0 :(得分:1)
我认为UIActionSheet不是向用户呈现设置视图的正确控件。
从课程参考文档:
使用UIActionSheet类向用户显示一组 如何继续执行给定任务的替代方案。你也可以使用 动作表提示用户确认有潜在危险 行动。操作表包含可选标题和一个或多个 按钮,每个按钮对应一个要采取的动作。
相反,你应该创建一个UIViewController子类并以模态或导航控制器的形式呈现它。
我不知道为什么setEnabled
无法在您的代码中运行。 setNeedsDisplay
不是必需的,控件应该重绘。检查updateSettingsUI和onSettingsButtonClick中的segType2是否是同一个对象。