从segue中预选UITableViewCell

时间:2013-08-23 03:36:59

标签: ios uitableview cell segue null

我正在使用Storyboard并且从一个viewcontroller过渡到我想要在目标视图控制器中预先选择UITableView的单元格。

源视图控制器中的

prepareForSeque将字符串值传递到目标viewcontroller的NSString中。

我想要做的是加载目标viewcontroller,让UITableView加载一个匹配通过segue调用传递的字符串值的单元格...

问题是 - 当我尝试在我的目标viewcontroller的viewDidLoad中访问它时,UITableView为nil ...我想从那里调用selectRowAtIndexPath ...

提前感谢!

2 个答案:

答案 0 :(得分:0)

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

我建议你做一个

@property (nonatomic, strong) NSString *yourCellId;
在viewController.h中

然后在准备segue时,你可以这样[[segue destinationViewController] setYourCellId:yourstring]并设置该值。

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

答案 1 :(得分:0)

在您的destinationViewController.h中创建一个属性@property(nonatomic,retain) NSString *selectedString;。 在prepareForSegue中,在实例化destinationView之后,请调用destinationViewController.selectedString = someSelectedString;。 然后做segue。在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];
}