在 UITabBarController 中推送 UINavigationController 时 UITableViewCell 消失

Posted

技术标签:

【中文标题】在 UITabBarController 中推送 UINavigationController 时 UITableViewCell 消失【英文标题】:TableViewCell disappears when push UINavigationController in UITabBarController's More tableview 【发布时间】:2011-04-25 10:54:19 【问题描述】:

我在 UITabBarController 的 viewControllers 中添加了 6 个导航控制器。像往常一样,会创建一个更多选项卡来列出最后两个。问题是:在我在更多表格视图中选择一个表格单元格后,该单元格的内容会在视图控制器推入之前淡出并消失。然后,在我通过单击后退按钮返回更多表格视图后,该单元格的内容再次展示。我猜原因是它自己的导航控制器中的更多表视图,它推动了另一个导航控制器(由我创建)。我不想删除我的导航控制器,因为我想允许用户使用 UITabBarController 的 Edit 功能重新排列选项卡。谁能建议我应该怎么做?

【问题讨论】:

【参考方案1】:

在 AppDelegate 中创建 6 个导航控制器的实例并保留它们。并在 dealloc 方法中释放

【讨论】:

【参考方案2】:

刚刚遇到同样的问题。就我而言,我不小心将tabBarItem 分配给了导航控制器内的VC。当我在导航控制器上初始化 tabBarItem 时,闪烁/消失停止了。

MyViewController* viewController = [[MyViewController alloc] init];
UINavigationController* navigation = [[UINavigationController alloc] initWithRootViewController:viewController];
[viewController release];
// this has to be navigation.tabBarItem (not viewController.tabBarItem)
[navigation.tabBarItem initWithTitle:@"Title" image:[UIImage imageNamed:@"fancy.png"] 
                                          tag:42];

在 viewController 上初始化 tabBarItem 仍然会显示一个图标,这使得它更难被发现。我也不太确定(实际上我认为这很糟糕)我初始化 tabBarItem 的方式(没有 alloc)。但是我遇到了图标消失等问题,嘿,它有效;-)

【讨论】:

以上是关于在 UITabBarController 中推送 UINavigationController 时 UITableViewCell 消失的主要内容,如果未能解决你的问题,请参考以下文章

在 UITabBarController 中推送 ViewController

从 UITabBarController 推送的 UISplitViewController

如何在 uitabbarcontroller 中的 uibutton 单击事件上推送其他视图控制器?

从嵌套在 UITabBarController 中的导航控制器推送视图控制器?

在 UITabbarController 上推送 UIViewController 的问题

在推送的 UITabBarController 上设置徽章