无法推送到iOS中的视图控制器
我是iOS开发的初学者。我在iOS中制作了一个导航应用程序,当点击表格视图单元格时,可以在另一个视图中查看一些详细信息。我做了以下代码无法推送到iOS中的视图控制器,ios,objective-c,Ios,Objective C,我是iOS开发的初学者。我在iOS中制作了一个导航应用程序,当点击表格视图单元格时,可以在另一个视图中查看一些详细信息。我做了以下代码 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { LawyerViewController *dvc = [self.storyboard instantiateViewControllerWithIdenti
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
LawyerViewController *dvc = [self.storyboard instantiateViewControllerWithIdentifier:@"LawyerViewController"];
NSLog(@"%@",[self.myObject objectAtIndex:indexPath.row]);
dvc.lawyer = [self.myObject objectAtIndex:indexPath.row];
[self.navigationController pushViewController:dvc animated:YES];
}
这将进入下一个视图。但是dvc.lawyer
在这里不为空。在下一个查看页面上为空
读取下一页中的值
NSLog(@"%@",self.lawyer.firstName);
我怎样才能解决这个问题
提前谢谢 如果使用故事板序列,则应该以另一种方式实例化ViewController。您需要实现
prepareforsgue
,在这里您可以像这样访问segues destinationViewController:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"YOUR_SEGUE_NAME_HERE"])
{
// reference to the destination view controller
LawyerViewController *vc = [segue destinationViewController];
// Pass any data
vc.lawyer = self.myObject[[self.tableView indexPathForSelectedRow].row]; // Not tested
}
}
您如何在下一页阅读律师的价值?
NSLog(@“%@”,self.lawyer.firstName)
firstName是律师对象中的一个字符串。firstName可能是nil,而不是律师本身。当你只记录自己的时候,你会看到什么?律师?看着你的故事板,我认为你有一个序列连接到你的原型细胞,对吗?丹尼尔发布的答案应该会有所帮助。发件人将是您的tableViewCell。所以你可以得到indexPath。为什么你说“你不能用这种方式实例化ViewController?”??若在脚本中为视图控制器设置了标识符,这是vc实例化的正常方式。若你们有脚本序列!?塞格是另一个问题——如果你说“这不是最好的方式”——我完全同意你的看法。然而,说“你不能”意味着不可能,这是错误的,马诺克,但他需要改变他的实现,以任何一种方法。我将编辑我的回答如何从表格单元格中获取数据以及如何在表格单元格点击时执行操作?