早上好,
我希望有人能够了解我如何从嵌套在标签栏控制器中的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中的上述代码。
谢谢。
答案 0 :(得分:0)
您需要小心放置scrollToRowAtIndexPath
电话。如果你在视图加载之前放置它,它可能在nil上运行该方法。我想说在myViewController
中有一个名为scrollToRowAtIndexPath:
的函数,它确定当前是否显示视图,如果是,则只调用tableView版本。如果没有,请保存indexPath直到调用viewWillAppear:
并运行它。