我使用 UITableViewController 在目标 C 中的应用程序中设计视图。我想让表格单元格具有 segue 功能,可以跳转到目标 c 中的另一个视图控制器。
如何让表格单元格在目标 C 中具有 segue 功能?
屏幕图片:
在此处输入图像描述
@fazeelahamed :我尝试使用您的方法,但它也显示了错误消息。
屏幕图片:
在此处输入图像描述
我的代码部分:
在此处输入图像描述
在此处输入图像描述
将 SomeViewController 视为您要跳转到的视图控制器,而"someViewController"是该视图控制器上的标识符。
在表视图中 didSelectRowAtIndexPath 调用 self.performSegueWithIdentifier
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
self.performSegueWithIdentifier("someViewController", sender: indexPath);
}
在 prepareForSegue 方法中,只需标识 SomeViewController 的标识符并将其添加为 destinationViewcontroller。
override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
if (segue.identifier == "someViewController") {
let controller = (segue.destinationViewController as! UINavigationController).topViewController as! SomeViewController
}
}
在 Objective-C 中
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:
(NSIndexPath *)indexPath
{
[self performSegueWithIdentifier:@"someViewController" sender:self];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"someViewController"]) {
SomeViewController *someViewController = segue.destinationViewController;
}
}
首先添加
#import "SecondViewController.h" (change it to in which viewcontroller you want to seague)
在标头中,然后在表委托下编写此代码
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath: (NSIndexPath *)indexPath
{
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:storyboardName bundle: nil];
UIViewController * vc = [storyboard instantiateViewControllerWithIdentifier:@"IDENTIFIER_OF_YOUR_SECONDVIEWCONTROLLER"];
[self presentViewController:vc animated:YES completion:nil];
}