我有这段代码从我的tableview导航到另一个tableview。但它并没有导航到正确的tableview。它似乎创建了另一个导航到的视图,而不是我想要去的故事板上的视图。 这是因为我创建了一个对象吗?
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *) indexPath
{
ValjKupongViewController *vk = [[ValjKupongViewController alloc]init];
[self.navigationController pushViewController:vk animated:YES];
}
如何以正确的方式编写此代码,以便导航到具有ValjKupongViewController类的storyboard中的视图?
非常感谢您的帮助!
答案 0 :(得分:2)
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *) indexPath
{
[self performSegueWithIdentifier: @"My Custom Segue" sender: self];
}
在你的StoryBoard中
第1步 Ctrl
和Drag
鼠标来自
左侧是View Controller
左侧View Controller
。
View Controller
上的 left
=您正在转换的视图控制器FROM
。
View Controller
上的 right
=您正在转换的视图控制器TO
。
第2步选择push
作为Segue
的类型
第3步现在,您的视图控制器将在它们之间产生搜索(如下所示)
第4步您需要命名Segue才能识别它。点击Segue,然后转到属性检查器并设置Identifier
。 (在示例中,它设置为My Custom Segue
。
确保这与上面的代码相同。
即。 [self performSegueWithIdentifier: @"My Custom Segue" sender: self];
这是因为我创建了一个对象吗?
是的,每次调用ValjKupongViewController
时,您都在分配和初始化didSelectRowAtIndexPath
对象。使用这行代码
ValjKupongViewController *vk = [[ValjKupongViewController alloc]init];
然后使用此行转换到它
[self.navigationController pushViewController:vk animated:YES];