切换到UITableView控制器并滚动到部分的开头

时间:2009-10-02 13:57:06

标签: iphone uitableview uitabbarcontroller

早上好,

我希望有人能够了解我如何从嵌套在标签栏控制器中的ViewController切换到嵌套在标签栏控制器中的导航控制器中嵌套的另一个ViewController,然后滚动表格视图在部分导航控制器中到特定部分。

我至少找到了用

切换标签栏控制器所需要的东西
[self.applicationTabBarController setSelectedIndex:1];

我可以使用

获得对第二个视图控制器的引用
UINavigationController *secondTabNavController = (UINavigationController *)[[self.applicationTabBarController viewControllers] objectAtIndex:1];

MyViewController *myViewController = (MyViewController *)[[ordersNav viewControllers] objectAtIndex:0];

但我不清楚的是我如何将UITableView滚动到特定部分。我试过了

NSIndexPath *myPath = [NSIndexPath indexPathForRow:0 inSection:3];

[myViewController.ordersTableView scrollToRowAtIndexPath:myPath atScrollPosition:UITableViewScrollPositionTop animated:NO];

当然假设第二个视图已加载,并且有第3节。

最后,我的第一个视图控制器调用驻留在app delegate中的上述代码。

谢谢。

1 个答案:

答案 0 :(得分:0)

您需要小心放置scrollToRowAtIndexPath电话。如果你在视图加载之前放置它,它可能在nil上运行该方法。我想说在myViewController中有一个名为scrollToRowAtIndexPath:的函数,它确定当前是否显示视图,如果是,则只调用tableView版本。如果没有,请保存indexPath直到调用viewWillAppear:并运行它。