使用 pushViewController 加载 TableViewController 后没有发生 Ios-Segue 到 UIViewController

Posted

技术标签:

【中文标题】使用 pushViewController 加载 TableViewController 后没有发生 Ios-Segue 到 UIViewController【英文标题】:Ios-Segue to a UIViewController not happening after using pushViewController to load TableViewController 【发布时间】:2014-05-12 06:10:06 【问题描述】:

我目前正在开发一个ios 应用程序来浏览远程计算机上的文件夹并显示图片。现在为了浏览文件夹,我使用相同的table view 并更新它的cells,每次用户按下磁贴时。现在,在到达最终的内容列表(图像)之后,我正在尝试使用 segue 导航到 UIViewController 以显示 Images。但我收到一个错误:"segue not found".

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath  *)indexPath 
[tableView deselectRowAtIndexPath:indexPath animated:YES];
// Fetch device
self->browseObjID = [avObjArray objectAtIndex:indexPath.row];

if([self->browseObjID isFolder])//To load same table view for browsing the folders

  ContentL1TableViewController *targetViewController = [[[ContentL1TableViewController alloc] initWithMediaDevice:_devSelected andObjectId:self->browseObjID ];
    [[self navigationController] pushViewController:targetViewController animated:YES];

else
 [self performSegueWithIdentifier:@"DisplayImage" sender:self];// display final image

【问题讨论】:

首先,不要使用-> 语法。其次,在 Interface Builder 中检查 segue 的名称。 可能是您没有使用该名称的 segue(拼写?),或者您拥有此代码的控制器与您在情节提要中连接 segue 的实例不同。跨度> 第一个你的DisplayImage标识符不匹配,否则如果你使用storyboard需要识别storyboard 如果你使用故事板***.com/questions/23102978/… 请看我的回答。您的视图控制器不是从情节提要 (alloc] initWithMediaDevice...) 创建的。因此,您不能调用 perform segue,因为没有 segue(因为没有故事板)。 【参考方案1】:

您只能从情节提要创建的视图控制器中进行分割。

我假设您最初在故事板中定义了这个 TVC,但这只是第一个。

当您要访问后续 TVC 时,您将使用 alloc init 创建这些 TVC,因此它们没有定义 segue 的情节提要。

您应该使用 xib 文件创建图像视图控制器并从 xib 加载它或在代码中创建它。两者都会更容易。

或者您可以定义一个从 TVC 回到自身的“循环”segue,并使用它而不是一直使用 alloc init 创建一个。

【讨论】:

以上是关于使用 pushViewController 加载 TableViewController 后没有发生 Ios-Segue 到 UIViewController的主要内容,如果未能解决你的问题,请参考以下文章

导航控制器到 Pushviewcontroller 到新的视图控制器,WebKit 延迟/首次加载时慢

当 presentviewcontroller 或 pushviewcontroller 时 UITableView 被重新加载

浅论ViewController的加载 -- 解决 viewDidLoad 被提前加载的问题(pushViewController 前执行)

Xcode 9 更新后 pushViewController 不起作用

iOS 7 中的 PushViewController

单击行后立即使 pushViewController 转换