在 popViewControllerAnimated 之后 UINavigationBar 下的 UITableView

Posted

技术标签:

【中文标题】在 popViewControllerAnimated 之后 UINavigationBar 下的 UITableView【英文标题】:UITableView under UINavigationBar after popViewControllerAnimated 【发布时间】:2013-02-19 17:51:33 【问题描述】:

在 UINavigationController 下使用 UITableViews 导航 3 个级别后,最终呈现一个 UIViewController 调用:

[self.navigationController popViewControllerAnimated:YES];

我看到了这个结果,它是覆盖在 UITableView 之上的 UINavigationBar。

如何修复仅在弹出视图后才会出现的叠加层?

部署目标 6.0

我见过几个听起来很相似的问题,但不完全是这种情况,也没有答案。

顺便说一句:使用导航栏后退按钮不会导致此行为。

【问题讨论】:

【参考方案1】:

当从 UINavigationController 弹出多个视图时,我发现该视图必须完全加载,否则 UI 会混淆并显示奇怪。所以在我的例子中,我添加了一个检查并在加载后弹出视图。

- (void) viewDidAppear:(BOOL)animated    
    if (self->doPopView) 
        [self.navigationController popViewControllerAnimated:YES];
     else 
       // ...
    

这种方法解决了 UINavigationController 与 UITableView 的显示问题。

【讨论】:

【参考方案2】:

您的视图未完全卸载,因此出现了这种奇怪的行为,您是否使用相同的UITableViewController 进行所有钻取。如果相同,那么在二级钻取下是否可以正常工作?

【讨论】:

使用 segues 和导航栏后退按钮时,所有 ui 行为都是稳定且可预测的。只有当我 [self.navigationController popViewControllerAnimated:YES]; 你是否在 viewDidAppear 中制作了 UIbarButton 通道?? 不,我没有对任何 ui 组件进行任何更改。只需将 uitableviewcontroller 推送到 uinavigationcontroller。

以上是关于在 popViewControllerAnimated 之后 UINavigationBar 下的 UITableView的主要内容,如果未能解决你的问题,请参考以下文章

秋的潇洒在啥?在啥在啥?

上传的数据在云端的怎么查看,保存在啥位置?

在 React 应用程序中在哪里转换数据 - 在 Express 中还是在前端使用 React?

存储在 plist 中的数据在模拟器中有效,但在设备中无效

如何在保存在 Mongoose (ExpressJS) 之前在模型中格式化数据

如何在保存在 Mongoose (ExpressJS) 之前在模型中格式化数据