加载没有 Segue 的视图表单 StoryBoard
Posted
技术标签:
【中文标题】加载没有 Segue 的视图表单 StoryBoard【英文标题】:load view form StoryBoard that does not have a Segue 【发布时间】:2012-05-26 19:51:05 【问题描述】:我真的很喜欢在 Storyboard 中布置我的所有视图,但有时我会根据由代码生成的按钮显示视图,因此不会有 Segue 参考 - 它会是在情节提要中完全断开连接。我仍然想在故事板中设计它,这样我就可以很好地概览我的所有屏幕。
我是否可以在加载 UIViewControler 时加载在情节提要中设计的 XIB(或情节提要中的任何内容)?
【问题讨论】:
你能给我们举个例子来说明你想要做什么吗?什么样的数据负责创建新视图?一般来说,我建议您创建一个新类或 yust 一个具有相同类的视图,并根据用户输入隐藏或生成视图内容。你会更容易 【参考方案1】:我在我的项目中这样做:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *myController = [storyboard instantiateViewControllerWithIdentifier:@"MyViewController"];
[self.navigationController pushViewController: myController animated:YES];
只需确保您已正确设置控制器的标识符即可。你可以这样做:
-
在 Storyboard 中选择控制器
在实用程序面板中,单击属性检查器。无论您决定在 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)
【讨论】:
截图对我有帮助。谢谢以上是关于加载没有 Segue 的视图表单 StoryBoard的主要内容,如果未能解决你的问题,请参考以下文章