连接 UITableView + UITableView
Posted
技术标签:
【中文标题】连接 UITableView + UITableView【英文标题】:connect UITableView + UITableView 【发布时间】:2010-04-27 16:36:39 【问题描述】:现在我有一个索引 UITableView 进入详细视图,但我希望它转到另一个 UITableView 然后是详细视图。
我的代码是这样的:
` - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
displyAnnController *anController = [[displyAnnController alloc] initWithNibName:@"AnnView" bundle:[NSBundle mainBundle]];
DetailViewController *dvController = [[DetailViewController alloc] initWithStyle:UITableViewStyleGrouped];
switch (indexPath.row)
case 0:
[self.navigationController pushViewController:anController animated:YES];
[anController release];
anController = nil;
break;
case 1:
[self.navigationController pushViewController:dvController animated:YES];
[dvController release];
dvController = nil;
break;
default:
break;
`
当我在模拟器中按下索引为 0 的单元格时,程序崩溃了!
有什么问题?请帮助我..
不,我没有覆盖-initWithNibName
,我只是在这里以相同的方式使用它,但推送到 ControlView 而不是 TableView。此外,调试控制台中没有错误。
我试图在切换块之后释放控制器,但程序仍然崩溃:(
不管怎样,我写的时候就可以了:
displyAnnController *anController = [[displyAnnController alloc] initWithStyle:UITableViewStyleGrouped]];
而不是:
displyAnnController *anController = [[displyAnnController alloc] initWithNibName:@"AnnView" bundle:[NSBundle mainBundle]]
我暂时接受这个只是为了完成我的工作!但我希望找到任何帮助示例,因为不需要作为组。
感谢大家的帮助和建议。
【问题讨论】:
【参考方案1】:查看调试控制台 (Cmd-Shift-R
) 并查看错误是什么。
您是否覆盖displyAnnController
上的-initWithNibName
消息?还是-viewDidLoad
消息?
您也有内存泄漏。你总是+alloc
两个控制器,但只有-release
其中一个。不要+alloc
您的控制器,除非您要实际使用它。
【讨论】:
是的,在 switch 块之后释放你的视图控制器。以及为什么不在此视图控制器的 -viewDidLoad 中创建视图控制器,将它们添加到数组中并使用 objectAtIndex:row 在 didSelectRowAtIndexPath: 方法中将相应的视图控制器推送到导航堆栈上。正如 Branon 所说,检查您的控制台,了解实际出了什么问题。【参考方案2】:我认为你的应用程序崩溃了,因为首先你释放了视图,然后你将它设为 nil。如果它被释放一次,那么它没有获得使其为零的引用。尝试一次。它可能会工作。
【讨论】:
以上是关于连接 UITableView + UITableView的主要内容,如果未能解决你的问题,请参考以下文章
UINavigationController 如何成为 UITableView 的 navigationController?