【发布时间】:2011-08-20 06:55:14
【问题描述】:
我的项目中有一个非常奇怪的错误。我有一个UIScrollView 作为我的主要观点。在其中,我有一个UIViewController(不是UITableViewController),它有一个UITableView 实例变量,以及一些杂项UIButtons。我已将视图控制器的视图框架设置为CGRectMake(0, 64, 320, 388),因为它上面有一个标签栏(这还没有功能)。起初它工作得很好而且看起来很棒,但是一旦我提出并关闭modalViewController(因此重新加载UIViewController,我相信),它会将UIViewController的视图推到屏幕顶部(默认设置它设置为CGRectMake(0, 0, 320, 460),但由于我已将wantsFullScreenLayout 设置为NO,它现在将其设置为CGRectMake(0, 0, 320, 388)。
我已将此问题跟踪到viewWillAppear 和viewDidAppear 之间的某个位置。这是我关闭modalViewController后的确切日志:
2011-05-06 11:08:39.974 Campus[1570:207] Frame is 0.000000, 64.000000, 320.000000, 388.000000 (viewWillAppear)
2011-05-06 11:08:40.378 Campus[1570:207] Frame is 0.000000, 0.000000, 320.000000, 388.000000 (viewDidAppear)
如您所见,框架在viewWillAppear 中很好,但在viewDidAppear 中则不行。
我做了以下事情来尝试修复它:
- 在loadView、viewDidLoad、viewWillAppear和viewDidAppear中设置所需的帧。
- 将我的 wantsFullScreenLayout 设置为 NO。
- 在我的方法覆盖中杀死了我的 [super viewWillAppear:] 和 [super viewDidAppear:] 调用。
我该怎么办?!?!?
【问题讨论】:
-
谁在展示模态视图控制器?
-
正在调整自己大小的 UIViewController
标签: ios uiviewcontroller uiscrollview viewdidappear viewwillappear