当master有导航栏提示时,iOS 7详细布局

Fel*_*lix 5 layout uinavigationbar master-detail ios ios7

我在iOS 7中遇到了布局问题:

截图

要重现,请创建一个简单的master-detail-app并在MasterViewController.m中插入此行:

self.navigationItem.prompt = @"Master";
Run Code Online (Sandbox Code Playgroud)

这在DetailViewController.m中:

self.edgesForExtendedLayout = UIRectEdgeNone;
Run Code Online (Sandbox Code Playgroud)

两条线都在viewDidLoad.

当导航栏缩小到正常大小时,详细视图的框架无法正确更新.

我该怎么解决这个问题?

小智 3

我当前的解决方案是删除master view的 viewWillDisappear 中的提示:

- (void) viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    self.navigationItem.prompt = nil;
}
Run Code Online (Sandbox Code Playgroud)

然后在viewWillAppear中再次设置即可。不过,应该有更好的方法。

  • ...并且,当以其他方式设置时(即,当详细信息有提示时,我们将此代码放在详细信息的 viewWillDisappear 中)时,此解决方法似乎不起作用。 (2认同)