【问题标题】:How To addSubViews To Storyboard, Then Displaying It Using A Segue如何将子视图添加到情节提要,然后使用 Segue 显示它
【发布时间】:2016-06-19 22:15:29
【问题描述】:

我有一个对给定标识符的情节提要的视图控制器引用。我正在向它添加一堆按钮,然后尝试通过 segue 显示它。

我的问题是,当 segue 触发时,它会创建一个具有相同 segue 标识符的视图控制器的差异实例,因此它是空白的。

什么是 addSubView() 到情节提要的最佳做法,然后显示相同的情节提要对象?

澄清

这是我正在使用的流程:

Central VC -> 使用集中式 Storyboard 对象创建 SubVC -> 在工厂类中将 SubViews 添加到该 SubVC -> 使用其标识符将 SubVC 队列 Segue 回 Central VC 以进行 segue -> [它创建一个没有我的新 VC补充]

【问题讨论】:

  • 不清楚你想做什么——如果你能添加一些代码来展示你是如何创建视图和添加按钮的。

标签: ios swift storyboard segue


【解决方案1】:

如果您使用 segue,则 Storyboard 会创建目标 viewController。如果要自定义目标 viewController,请在 prepareForSegue 中进行。

【讨论】:

  • 我正在使用一个集中的 StoryBoard 对象创建一个 viewController,然后将所有内容添加到其中。然后我将实例化 VC 的同一个类中的 segue 排队,它会即时创建另一个。 :( 我需要使用标识符创建的那个来加载同一个。
  • 如果你想使用segue,那么你需要先触发segue,然后在prepareForSeguesegue.destinationViewController as! YourViewController获取目标viewController,然后添加你额外的视图。
【解决方案2】:

您可以通过代码实例化视图,然后将其推入导航控制器,这是一种干净的方法,并且不会将故事板与不必要的 segues 混淆。

只需实例化下一个视图(您必须先给该视图一个 StoryBoard ID),通过代码调用它,然后将其推送到导航控制器中。

Objective-C

UIStoryboard* storyboard = [UIStoryboard storyboardWithName:@"storyBoard_Name" bundle:nil];
UIViewController* controller = [storyboard instantiateViewControllerWithIdentifier:@"ViewController_ID"];

[self.navigationController pushViewController:viewControllerName animated:YES];

斯威夫特

let storyboard = UIStoryboard(name: "storyBoard_Name", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("ViewController_ID") as! UIViewController
self.presentViewController(vc, animated: true, completion: nil)

【讨论】:

  • 我尝试了这个的 Swift 版本,但没有成功。 :(
  • 应该的,我加个swift版,等一下。
  • @MarkLöwe,检查它是否有效,或发布错误消息。
  • 我想我本末倒置。我认为故事板将实例锁定为单例,因此通过名称添加它们只会在显示之前准备它们。我在上面发现我必须先调用 segue,然后将 prep 调用发送到下一个 VC 以确保它之前存在。参数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-25
  • 2014-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多