【问题标题】:Open a new ViewController from a current view controller从当前视图控制器打开一个新的 ViewController
【发布时间】:2014-04-26 15:36:40
【问题描述】:

我知道还有一些其他类似的问题,但是我无法让它们中的任何一个起作用。我想我需要进一步澄清一下,我的攻击是正确的。

我有一个故事板,上面有一个 NavigationController 和一个包含 webview 的 ViewController。我已经成功捕获了对我的 webview 的点击,我希望它在一个新的 ViewController 中打开,该 ViewController 还包含一个 webview。我在情节提要上添加了第二个带有 webview 的 ViewController,但不知道如何向其中添加 segue。我还尝试通过将以下内容添加到我的第一个 ViewController 的 shouldStartLoadWithRequest 方法中来在代码中建立连接:

    SecondViewController *secondViewController = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
    [self presentViewController:secondViewController animated:YES completion:nil];

但是它永远不会打开我的第二个 ViewController,它只是停留在第一个 ViewController 中。我是菜鸟,我确定我在某个地方遗漏了什么?

【问题讨论】:

  • 是的,通过“使用”我将它放在我的故事板上,连接到我的第一个视图控制器。
  • 好的,你把这段代码放在某个按钮事件或其他地方吗?

标签: ios uiviewcontroller uinavigationcontroller storyboard


【解决方案1】:

只需将 segue 从一个视图控制器添加到另一个(未连接到任何特定按钮),然后给 segue 一个标识符。

然后,在您的代码中删除initWithNibName,因为您没有NIB。相反,请使用performSegueWithIdentifier:sender:。您可能还想使用prepareForSegue:sender: 来传递应加载到第二个Web 视图中的相应URL/HTML 信息。

【讨论】:

  • 我试过从第一个视图控制器拖一个segue,把第一个视图控制器的webview拖到第二个,它不会让我?如何添加未连接到按钮之类的 segue?
  • 在视图下方的栏中,您会看到代表视图控制器的橙色/黄色圆圈。按住 Ctrl 并从该视图拖动到目标视图
  • 成功了,谢谢!我只是查看了 performSegueWithIdentifier:sender 的使用,我对它的使用有点困惑。我是否将其用作这样的方法? - (bool)performSegueWithIdentifier:sender { }
  • [self performSegue... 因为 segue 连接到控制器本身
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-03
  • 1970-01-01
  • 2018-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多