2016-03-06 65 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