2013-01-08 45 views
2

我有兩個UIViewControllers(A和B)的故事板。該視圖控制器有一個屬性無法鏈接UIViewController IBOutlets與StoryBoard

@property (nonatomic, retain) IBOutlet UIViewController *viewController; 

,我想通過故事板鏈接到B.

出口顯示下的故事板菜單中的IBOutlets部分,但我無法鏈接。 這似乎很奇怪,爲什麼我試圖做到這一點,但我需要它。有人知道如何做到這一點?

+1

IBOutlets通常很弱,不保留。 –

回答

6

IBOutlets是單個視圖控制器內的連接。在視圖控制器內創建對象的引用,以便您可以在代碼中使用這些對象。

您無法從一個視圖控制器創建IBOutlets到另一個視圖控制器。屬性是正確的路線,但您必須在代碼中分配屬性。通常當一個視圖控制器創建另一個視圖控制器時,它可能會設置一個對自身的引用

OtherViewController *otherViewController = [OtherViewController alloc] init]; 
otherViewController.masterViewController = self; 
// at this point "otherViewController" has a reference to the current view controller 
+0

如果我有一個父視圖控制器,它的孩子可以在構建時確定,該怎麼辦? –

0

現在我明白我需要做什麼。我需要創建一個custom segue以實現與將UINavigationController鏈接到其他ViewController並將其標記爲RootViewController時相同的結果。它由segue完成,而不是由IBOutlet完成。

0

我對晚會有點遲,但是我爲了這份工作而組織了一個階級班。查看git存儲庫以查看正在使用的類:https://github.com/datinc/DATOutletSegue

基本上它使用segue的標識符連接到父控制器