弹出后如何选择 UITableView 的 indexPath?

Posted

技术标签:

【中文标题】弹出后如何选择 UITableView 的 indexPath?【英文标题】:How to select the indexPath of the UITableView after a pop? 【发布时间】:2011-08-02 15:56:21 【问题描述】:

我有一个 RootViewController,它是一个带有 UITableView 的 UIViewController。此 RootViewController 根据所选行推送 ChildViewController。当我弹出 ChildViewController 并返回到 RootViewController 时,我希望能够知道被选中的 indexPath。获得 indexPath 后,我想调用 selectRowAtIndexPath:animated:scrollPosition: 方法将选定的 indexPath 滚动到顶部。

我知道如何在 tableview (indexPathForSelectedRow) 中获取选定的 indexPath,但是当我推送 ChildViewController 然后弹回 RootViewController 时,我不知道如何保持该值。

【问题讨论】:

【参考方案1】:

在表格视图控制器.h 文件中添加一个字段:,

    NSIndexPath* selectedIndexPath;

    //...


//...

@property (nonatomic, retain) NSIndexPath* selectedIndexPath;

//...

@end

然后添加

@synthesize selectedIndexPath;

在您的 .m 文件中。之后,使用

存储值
    self.selectedIndexPath = myIndexPath;

然后按如下方式使用:

- (void)viewWillAppear:(BOOL)animated 
        [self.tableView scrollToRowAtIndexPath:selectedIndexPath atScrollPosition:UITableViewScrollPositionMiddle animated:NO];

【讨论】:

非常感谢您快速准确的回答。非常感谢!【参考方案2】:

使用静态变量,它将保存您的 Cellselected Indexpath.row 值..

对于您的类,仅在静态方法或类中的 .h 文件中声明它,否则在 @implemented 之前

静态 int tableIndex = nil;

didselect row at path >>>table view Delegate方法

tableindex = indexpath.row;

视图将出现..

if(tableIndex !=nil) //做东西

谢谢

【讨论】:

以上是关于弹出后如何选择 UITableView 的 indexPath?的主要内容,如果未能解决你的问题,请参考以下文章

DevExpress LookupEdit 控件,如何设置不弹出下拉框。现在的做法是弹出后马上关闭,但总会闪一下出来。。

视图弹出后如何从 uinavigationcontroller 中删除分段控制器?

React Native - 在博览会弹出后安装博览会

React Native - 在博览会弹出后安装博览会

confirm多次以后弹出后,不是取消、确认了,而是关闭网页,何解

web页面移动端键盘弹出后对页面布局的影响