2016-03-06 60 views
1

我有给定标识符的故事板的视图控制器引用。我为它添加了一堆按钮,然后试图通过segue显示它。如何添加子视图到故事板,然后使用Segue显示它

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

将StorySubView()添加到故事板然后获取该SAME故事板对象来显示的最佳做法是什么?

澄清

下面是我使用的流程:

中央VC - 从>队列Segue公司 - >使用SubVC集中的情节提要对象创建 - >添加子视图的工厂类,SubVC SubVC使用它的标识符返回到中央VC for segue - > [它创建一个新的VC没有我的补充]

+0

目前还不清楚你想要做什么 - 如果你可以添加一些代码来显示你如何创建视图并添加按钮将会很有帮助。 – Stuart

回答

1

如果您使用塞格斯,那么故事板创建目标的viewController。如果你想自定义目标视图控制器,那么你在prepareForSegue中这样做。

+0

I使用一个集中式的StoryBoard对象创建一个viewController,然后添加所有东西,然后我将segue从实例化VC的同一个类中排队,然后它创建另一个类:(我需要一个我使用标识符加载同一个。 –

+0

如果你想使用segues,那么你需要首先触发segue,然后在'prepareForSegue'中从'segue.destinationVi'获取目的viewController ewController as! YourViewController'然后添加额外的视图。 – vacawama

+0

啊哈!这可能是我误解的魔力酱!泰! –

1

你可以通过代码实例化一个视图,并推送给你的导航控制器,这是一个干净的方法,而不是混乱不需要的故事板egues。

只需实例化下一个视图(您必须先给该视图添加一个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) 
+0

我试过这个Swift版本,它没有工作。 :( –

+0

它应该,我会添加一个迅速的版本,保持秒 – UlyssesR

+0

@MarkLöwe,检查它是否工作,或张贴错误信息。 – UlyssesR

相关问题