【问题标题】:load view form StoryBoard that does not have a Segue加载没有 Segue 的视图表单 StoryBoard
【发布时间】:2012-05-26 19:51:05
【问题描述】:

我真的很喜欢在 Storyboard 中布置我的所有视图,但有时我会根据由代码生成的按钮显示视图,因此不会有 Segue 参考 - 它会是在情节提要中完全断开连接。我仍然想在故事板中设计它,这样我就可以很好地概览我的所有屏幕。

我是否可以在加载 UIViewControler 时加载在情节提要中设计的 XIB(或情节提要中的任何内容)?

【问题讨论】:

  • 你能给我们举个例子来说明你想要做什么吗?什么样的数据负责创建新视图?一般来说,我建议您创建一个新类或 yust 一个具有相同类的视图,并根据用户输入隐藏或生成视图内容。你会更容易

标签: ipad ios5 uistoryboard


【解决方案1】:

我在我的项目中这样做:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *myController = [storyboard instantiateViewControllerWithIdentifier:@"MyViewController"];
[self.navigationController pushViewController: myController animated:YES];

只需确保您已正确设置控制器的标识符即可。你可以这样做:

  1. 在 Storyboard 中选择控制器
  2. 在实用程序面板中,单击属性检查器。无论您决定在 Identifier 字段中添加什么,都将在“instantiateViewControllerWithIdentifier”语句中进行。

我希望这会有所帮助。

【讨论】:

  • 完美,正是我想要的——谢谢。虽然这不是完全必要的,但很高兴在一个屏幕上看到我的所有 UIView。
  • 最初它没有锻炼,但后来.. [self presentViewController:vc animated:YES completion:NO]; 在最后一行为我做了魔法。
  • 是的 Mayu,应该注意的是,只有当视图控制器嵌入到导航视图控制器中时,使用 [self.navigationController push...] 才有效。
【解决方案2】:

您必须为您的视图控制器分配一个Storyboard ID

IB > 显示身份检查器 > 身份 > 故事板 ID

斯威夫特

let storyboard = UIStoryboard(name: "Main", bundle: nil)
let viewcontroller = storyboard.instantiateViewControllerWithIdentifier("viewController")
                     as? UIViewController
if let navigationController = self.navigationController {
    navigationController.pushViewController(viewcontroller!, animated: true)
}

【讨论】:

  • 截图对我有帮助。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-19
  • 2015-01-21
  • 1970-01-01
  • 2012-03-02
  • 1970-01-01
相关资源
最近更新 更多