将数据从表视图控制器传递到详细信息视图时出错 控制器。我正在使用导航控制器。
错误消息如下:
使用未声明的标识符_wordLabel
这是我在表视图控制器(.m文件)中准备segue的实现。
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"ShowWordDetails"]) {
//UINavigationController *navController = (UINavigationController *)segue.destinationViewController;
wordDetailViewController *detailViewController = [segue destinationViewController];
NSIndexPath *myIndexPath = [self.tableView indexPathForSelectedRow];
long row = [myIndexPath row];
detailViewController.wordDetailModel = @[_wordLabel[row], _meaningLabel[row]];
}
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
我之前在详细视图控制器中声明了wordLabel
和meaningLabel
,如下所示:
@property (strong, nonatomic) IBOutlet UILabel *wordLabel;
@property (strong, nonatomic) IBOutlet UILabel *meaningLabel;
@property (strong, nonatomic) NSArray *wordDetailModel;
我还在详细视图控制器的viewDidLoad
方法中声明了它如下:
-(void)viewDidLoad {
[super viewDidLoad];
_wordLabel.text = _wordDetailModel[0];
_meaningLabel.text = _wordDetailModel[1];
// Do any additional setup after loading the view.
}
答案 0 :(得分:0)
_wordLabel
是您的detailViewController的私有成员。您无法像第一次代码报价中那样尝试访问它。您需要拨打detailViewController.wordLabel
。
答案 1 :(得分:0)
首先,您不能将数组运算符与UILabel
一起使用_wordLabel[row]
第二,你必须将_wordLabel [row]定义为TVC中的一个数组,它与detailViewController中的标签分开
答案 2 :(得分:0)
我认为您不需要wordDetailModel
,因为您可以UILabel
访问TableViewController
,如下所述
detailViewController.wordLabel.text = @"Word";
detailViewController.meaningLabel.text = @"Meaning";
_wordLabel
是UILabel
,它是DetailViewController
中的私有变量,无法直接在TableViewController
中使用,您必须使用property
来使用它。加上_wordLabel
不是@sha和@rockstarr已经回答的数组