0

我正在使用 Storyboards 并有一个 viewcontroller 转换,我想在目标视图控制器中预先选择 UITableView 的一个单元格。

源视图控制器中的 prepareForSeque 将一个字符串值传递给目标视图控制器的 NSString。

我想要做的是加载目标视图控制器,让 UITableView 加载与通过 segue 调用传递的字符串值匹配的单元格......

问题是 - 当我尝试在我的目标视图控制器的 viewDidLoad 中访问 UITableView 时它为零...我想从那里调用 selectRowAtIndexPath...

提前致谢!

4

2 回答 2

0

在为 segue 做准备时,您可以引用destinationViewController 并对它进行分配或其他调用。

我建议做一个

@property (nonatomic, strong) NSString *yourCellId;

在你的 viewController.h

然后在准备继续时,您可以这样做[[segue destinationViewController] setYourCellId:yourstring],它会设置该值。

然后在 viewDidLoad 中,您可以访问 yourCellId,因为它将在 init 之后和 viewDidLoad 之前设置

于 2013-08-23T03:53:30.760 回答
0

destinationViewController.h像这样在你的财产@property(nonatomic,retain) NSString *selectedString;。在prepareForSegue实例化destinationView 后,调用destinationViewController.selectedString = someSelectedString;。然后进行转场。在 DestinationViewController.m 中,执行以下操作:

-(void)viewDidAppear:(bool)animated
{
    [super viewDidAppear:animated];
    //Here you do whatever check you are doing to find out 
    //which row the selected string is in, and put it in
    NSIndexPath *selectedIndex = //Whatever datasource-way you can figure out
    [tableView selectRowAtIndexPath:selectedIndex animated:YES scrollPosition:UITableViewScrollPositionNone];
}
于 2013-08-23T03:54:02.790 回答