为什么我的视图没有重新加载?

时间:2011-06-30 19:03:43

标签: iphone objective-c uitableview view reload

所以我在一个视图中有两个搜索栏,一些按钮和一个tableView下面的那些(是的,所有这些)。我的顶部还有一个带有后退按钮的导航栏。

对于特定操作,我删除了所有搜索栏,按钮,并且在我的视图中只显示了一个uitableviewcell。

如果我按下编辑,我希望重新加载整个视图,而不仅仅是tableView,但我希望视图有搜索栏和按钮以及导航屏幕。

我在[self.view reloadInputViews]按钮的IBAction中做了edit。控制在这里,但视图没有重新加载。为什么呢?

3 个答案:

答案 0 :(得分:1)

reloadInputViews专门用于firstResponders的视图。可能self.view不是当时的第一个响应者。但是为什么要使用“reloadInputViews”来完成所有这些,使用它会更容易:[self.view setNeedsLayout]?

答案 1 :(得分:0)

处理刷新视图状态的更好方法是将UIViewController视图的子视图的配置抽象为最初可以从viewDidLoad调用的自定义方法,并再次作为{{1}的操作}。

UIbarButtonItem

值得区分的原因是因为在延迟加载视图后系统会自动调用- (void)viewDidLoad { //Specific, non repeated view setup [self resetViewState]; } - (void)resetViewState { //Repeatable view setup } 。按照设计,它不是每个视图应该多次调用的方法。如果视图被丢弃并重新创建,它将再次被调用。

如果您需要进行布局工作,您还可以将UIViewController子视图的布局移动到viewDidLoad,系统会在不同时间调用它。

答案 2 :(得分:-1)

我不知道如何在StackOverflow上发布后立即得到答案。对不起麻烦的家伙(感叹!)

我做了[self viewDidLoad];