在热门应用Instagram中,当您点击用户时,它会显示他们的个人资料。如果您点击其他用户名(可能是对照片的评论),则会显示第二人的个人资料。
我正在尝试使用Objective-C和Storyboard实现类似的功能。我有你可以考虑的帐户页面,在该页面内是其他用户。我可以访问一个帐户页面,但是我遇到了在Instagram等应用程序中看到的无穷无尽的帐户页面,其中一个原因是您无法对同一个视图控制器执行segue。当您从帐户页面中点击新用户时,我尝试通过以编程方式呈现新帐户页面来绕过它,但我遇到了很多错误。
我可以通过多种方式实现相同视图控制器的无尽流式(显然我使用的是navigationController
,因为这可能会被问到我)。
编辑使用@tmac_balla提供的解决方案(谢谢你的帮助)我可以转到新的tableview
,但tableView
是空白的,我得到以下内容错误信息。
*** Assertion failure in -[UITableView _configureCellForDisplay:forIndexPath:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit- 3512.30.14/UITableView.m:7962
2016-01-02 17:06:46.765 Quoter[1631:845864] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'UITableView (<UITableView: 0x146096000; frame = (0 0; 320 568); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x1456c19b0>; layer = <CALayer: 0x1456c0330>; contentOffset: {0, -64}; contentSize: {320, 400}>) failed to obtain a cell from its dataSource (<_UIFilteredDataSource: 0x145727b20>)'
编辑2 使用@Daniel T.提供的解决方案。我能够将新的视图控制器推送到导航堆栈,控制器的非tableView
部分工作正常但是它来到tableView
中的单元格(在我的简短测试中)看到一个场景,其中单元格不出现在新tableView
上,而是出现在前一个单元格上。不确定我是如何加载单元格或解决方案的问题。
答案 0 :(得分:0)
单击链接/按钮时,您需要将视图控制器推送到UINavigationController而不是使用segue。因此,当您的方法被调用时,您可以编写
accountViewController account = accountViewController()
account.someTextField.text = "someText"
self.navigationController.pushViewController(account, animated: YES);
创建同一VC的新实例并将其推送到屏幕。
关于错误,尝试检查单元格是否存在,如果不存在则初始化
var cell : UITableViewCell = tableView.dequeueReusableCellWithIdentifier("Cell") as UITableViewCell
if (cell == nil) {
cell = UITableViewCell(style: UITableViewCellStyle.Value1, reuseIdentifier: "Cell")
}
}
答案 1 :(得分:0)