我正在做一个小应用程序,我正在使用UISplitVIewController,我正在尝试将UITable单元格文本推送到详细视图并将其显示在UITextField中。当我使用NSLog测试它时,我设法很好地推送字符串但是当我应用于UITextField时,它不显示不确定为什么我的方法:(我使用故事板这样做)
-(void)pushModuleName:(NSString*)moduleName
{
self.Lv4ModuleTitleTextField.text = moduleName;
NSLog(@"name pushed%@",moduleName);
}
不确定为什么这不起作用。
[UPDATE]
UITableViewController.m(调用方法的地方)
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *selectedModule = [NSString stringWithFormat:@"%@",[_numberOfRows objectAtIndex:indexPath.row]];
Lv4GradeViewController *lv4 = [[Lv4GradeViewController alloc] initWithNibName:nil bundle:nil];
[lv4 pushModuleName:selectedModule];
}
答案 0 :(得分:2)
您正在使用以下代码创建Lv4GradeViewController的新实例,但没有包含文本字段的XIB文件:
Lv4GradeViewController *lv4 = [[Lv4GradeViewController alloc] initWithNibName:nil bundle:nil];
我建议您使用storyboard instantiateViewControllerWithIdentifier
方法实例化Lv4GradeViewController:
Lv4GradeViewController *lv4 = [self.storyboard instantiateViewControllerWithIdentifier:@"IdentifierName"];
请记住在故事板中设置Lv4GradeViewController的故事板ID与 IdentifierName 相同。
答案 1 :(得分:1)
问题是你没有获得对屏幕上的Lv4GradeViewController的引用,你正在使用alloc init创建一个新的。拆分视图控制器具有viewControllers数组,索引0处的控制器是主控制器,索引1处的控制器是详细控制器。因此,didSelectRowAtIndexPath方法应如下所示:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *selectedModule = [NSString stringWithFormat:@"%@",[_numberOfRows objectAtIndex:indexPath.row]];
Lv4GradeViewController *lv4 = self.splitViewController.viewControllers[1];
[lv4 pushModuleName:selectedModule];
}