我目前正在将 SWRevealViewController 与 Storyboards 一起使用,并且我看到了直到最近才看到的行为。
最初,在我的一个前视图控制器中,我使用的是 UITableViewController,它运行良好。但是,我需要将其换掉并用带有 MKMapView 和 UITableView 的 UIViewController 替换它。我使用编辑器 > 嵌入 > 导航控制器将新视图控制器嵌入到导航控制器中,就像我之前使用 UITableViewController 所做的那样。
现在我发现当第二次转换到新的前端控制器时,内容被下推。
我在 ViewWillAppear 方法中添加了一些日志,并看到以下内容(经过编辑以筛选出日志噪音......):
首次亮相
self.view - UIView: frame = (0 0; 320 568)
self.mapView - MKMapView: frame = (0 65; 320 128)
self.tableView - UITableView: frame = (0 193; 320 375)
第二次出现
self.view - UIView: frame = (0 64; 320 504)
self.mapView - MKMapView: frame = (0 65; 320 128)
self.tableView - UITableView: frame = (0 193; 320 375)
所以看起来子控件的 X 和 Y 坐标很好 - 它们在两种外观上都是相同的。但是,视图控制器的self.view第二次被推下。
关于为什么会发生这种情况以及我能做些什么来解决它的任何想法?在 viewWillAppear 中将视图控制器的视图明显设置为 0,0 对我不起作用。
提前致谢。
更新 嗯......显然问题是真的:“为什么视图的原点第一次是 0,0?”
当我登录在 SWRevealViewController 的前视图中显示的其他视图控制器时,它们通常会在 0,64 处报告它们的起源。然而,第一次加载初始视图控制器并显示它是 0,0 ......所以现在我想知道这是怎么回事。