我正在使用Storyboard并且从一个viewcontroller过渡到我想要在目标视图控制器中预先选择UITableView的单元格。
源视图控制器中的prepareForSeque将字符串值传递到目标viewcontroller的NSString中。
我想要做的是加载目标viewcontroller,让UITableView加载一个匹配通过segue调用传递的字符串值的单元格...
问题是 - 当我尝试在我的目标viewcontroller的viewDidLoad中访问它时,UITableView为nil ...我想从那里调用selectRowAtIndexPath ...
提前感谢!
答案 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];
}