表视图的 iOS 问题:didSelectRowAtIndexPath 不触发窗口
Posted
技术标签:
【中文标题】表视图的 iOS 问题:didSelectRowAtIndexPath 不触发窗口【英文标题】:iOS problem with tableView:didSelectRowAtIndexPath not firing window 【发布时间】:2011-05-03 14:25:35 【问题描述】:第一次,请温柔...
我有一个 ios 应用;一个选项卡式 RSS 阅读器,每个选项卡都有不同的 RSS 提要导航视图。一切都很好,直到您选择要查看提要的行,然后什么都没有发生。我使用的代码是:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
if (_webViewController == nil)
self.webViewController = [[[WebViewController alloc] initWithNibName:@"WebViewController" bundle:[NSBundle mainBundle]] autorelease];
RSSEntry *entry = [_allEntries objectAtIndex:indexPath.row];
_webViewController.entry = entry;
[self.navigationController pushViewController:_webViewController animated:YES];
其中 RSSEntry 是一个仅设置 RSS 提要变量的类。我已经设置了一个 WebViewController.xib,m 和 h 来保存视图。
当您选择行时,没有任何反应。任何想法都欣然接受。
谢谢
罗伯
【问题讨论】:
您是否通过设置断点检查是否真的没有任何反应? Valentin - 抱歉,我之前错过了您的评论,感谢您的帮助。 【参考方案1】:self.navigationController 是否评估为非零?在某些情况下,navigationController 属性可能不会指向您封闭的 UINavigationController。我已经用特殊的视图控制器层次结构看到了这个......
【讨论】:
谢谢尼尔斯博特。我将如何解决这个问题?我的大脑今天已经死了……;) 您的视图控制器层次结构是什么样的? TabView 是主视图控制器,然后在两个选项卡上有 2 个导航视图 您的表视图控制器是否直接位于 UINavigationController 视图堆栈上? 我的主视图控制器在 tabcontroller 中有两个选项卡,每个选项卡调用单独的 nib。这些笔尖中的每一个都是一个表格视图。我开始认为我应该将每个表格视图放在导航控制器中......?【参考方案2】:_webViewController
在你使用它时可能已经释放了,因为你已经在if
块中分配了它。在该块的末尾,它被自动释放。
在你的 alloc 语句中删除 WebViewController 的 autorelease
子句,并在调用 pushViewController 之后添加 [webViewController release]
。
【讨论】:
感谢您的快速回复!试过这个,但不幸的是同样的效果;链接没有回应。 哦!我以前错过了这个。您正在创建self.webViewController
,但随后使用_webViewController
。注意后者的前导下划线。这可能是问题吗?我怀疑自动释放的事情也是一个问题,fwiw。
嗨,马克 - 不,也不是,但感谢您查看此内容,感谢您的帮助!我一定在某处遗漏了一些完全明显的东西......
当您在调试器中单步执行此代码时,您会看到什么?如果您不期望这些变量中的任何一个都为零?
不是我能看到马克,看起来还不错。它从数组中提取文章 URL 很好,例如以上是关于表视图的 iOS 问题:didSelectRowAtIndexPath 不触发窗口的主要内容,如果未能解决你的问题,请参考以下文章
表视图的 iOS 问题:didSelectRowAtIndexPath 不触发窗口