我是ios编程的新手,在这里问,但我一直都在访问!我很难理解为什么我遇到这个问题,它编译没有错误,我检查并检查了我的MainStoryboard中的所有插座和标识符.
我有2个UITableViewControllers,当用户选择表中的项时,我从第一个到第二个传递一个字符串,所以在FirstTableViewController.m中
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
int sel = indexPath.row;
if (sel == 0) {
_keyName = [NSString stringWithString:_string1];
NSLog(@"the table was selected at cell 0, %@", _string1);
}
if (sel == 1) {
_keyName = [NSString stringWithString:_string2];
}
// more code below...
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"ResultsSegue"])
{
UINavigationController *navigationController = segue.destinationViewController;
ResultsViewController *rv = [[navigationController viewControllers] objectAtIndex:0];
[rv setResults: _keyName];
NSLog(@"in the progress view, %@", _keyName);
//rv.delegate = (id)self;
rv.delegate = self;
}
}
Run Code Online (Sandbox Code Playgroud)
在我的ResultsViewController.m中
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"in the results, %@", _results);
NSLog(@"in the results view");
}
Run Code Online (Sandbox Code Playgroud)
在NSlog读数中,我得到:...在进度视图中,(null)在结果中,(null)在进度视图中,正确的字符串警告:尝试出现在
然后,当我点击取消按钮返回firstTableview并再次按下详细信息视图时,它不再显示null ..
在进度视图中,结果中的右侧字符串,进度视图中的右侧字符串,右侧字符串
rde*_*mar 29
问题是在didSelectRowAtIndexPath之前调用prepareForSegue.您应该删除didSelectRowAtIndexPath方法,并在prepareForSegue中执行所有操作.您可以使用以下行来获取所需的indexPath:
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7549 次 |
| 最近记录: |