mru*_*ueg 6 iphone scroll uitableview viewdidappear
UITableViewController
我的应用程序中有一个,它直接添加到视图层次结构中.视图出现后,我想滚动到一个特定的单元格.我的解决方案是调用代码滚动-[viewDidAppear]
.
根据Apple的文档,我必须手动调用该方法:
如果属于视图控制器的视图直接添加到视图层次结构中,则视图控制器将不会收到此消息.如果向视图层次结构插入或添加视图,并且它具有视图控制器,则应直接向关联的视图控制器发送此消息.
问题是:什么时候是手动调用它的时候?
-[viewDidAppear]
当我尝试进行滚动时,从父视图控制器调用它会导致崩溃,因为显然,表视图实际上还没有出现,因此认为它没有要滚动的部分.
Rob*_*ert 13
如果您正在使用视图控制器包含,请不要viewWillAppear:
直接调用.而是使用– beginAppearanceTransition:animated:
和– endAppearanceTransition
.
如果要实现自定义容器控制器,请使用此方法告诉子项其视图将要显示或消失.不要直接调用viewWillAppear:,viewWillDisappear:,viewDidAppear:或viewDidDisappear :.
调用addSubView会自动触发viewWillAppear:
,viewDidAppear:
如果视图的viewController是子视图控制器,那么viewWillAppear:
直接调用将触发视图将两次外观方法.使用beginAppearanceTransition:animated:and
- endAppearanceTransition`将抑制自动行为,因此您只能调用一次.
从父控制器的-viewDidAppear调用它通常是最好的选择。
如果子视图控制器尚未完全初始化,这会导致问题,那么您可能会遇到另一个问题。确保您的子视图控制器在调用-viewWillAppear后完全“准备好执行操作” (您也可以从父级的-viewWillAppear手动调用)
归档时间: |
|
查看次数: |
9538 次 |
最近记录: |