UITableView自定义弹出

时间:2010-03-08 03:08:39

标签: iphone uitableview

好的,我创建了一个具有项目列表作为主视图的应用程序,当您选择一个项目时,它会推送一个详细视图控制器。在此详细视图控制器中,您可以在项目之间切换。我希望能够推送视图,滚动几个项目,然后弹出视图,就像最初选择当前项目一样。我想推出一个视图,然后当我弹出它时,我希望它看起来像最初推动的不同视图。

关于如何做到这一点的任何想法?

2 个答案:

答案 0 :(得分:1)

看看UITableView的selectRowAtIndexPath:animated:scrollPosition:方法。您可以在视图控制器的viewDidAppear方法中调用它来实现图示效果,我相信。

考虑到这可能不是你真正想做的事情。在从详细视图返回后突出显示表格单元格已被Apple谴责,除非您有充分的理由,否则将对用户产生不良影响。

答案 1 :(得分:0)

到目前为止,为了达到这个效果,我用它来掩盖原始UITableViewCell的突出显示。

我已在-(void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated方法

中添加了此内容
[self.tableView selectRowAtIndexPath:selectedRow animated:NO scrollPosition:UITableViewScrollPositionNone];
[self.tableView deselectRowAtIndexPath:selectedRow animated:NO];

其中selectedRow是所选原始单元格的索引路径。我还将以下代码添加到scoll并突出显示正确的UITableViewCell。

[self.tableView scrollToRowAtIndexPath:tempPath atScrollPosition:UITableViewScrollPositionMiddle animated:NO];
[self.tableView selectRowAtIndexPath:tempPath animated:NO scrollPosition:UITableViewScrollPositionMiddle];
[self.tableView deselectRowAtIndexPath:tempPath animated:YES];