2012-01-24 11 views
22

ストーリーボードの前に、コンセントをクラスにドラッグするだけで代理人とデータソースを設定できました。ストーリーボードでは、コンセントを別のView Controllerにドラッグできません。それに応答する宛先はありません。ストーリーボード - デリゲートの設定

ビューコントローラオブジェクトをクリックすると、クラスのオーナーが下部に表示されますが、アウトレットを含む他のビューコントローラを選択すると、古いセレクションが消えてしまいます。二。

アップルはプログラムで接続する必要があると言っていますか?

答えて

27

修正。 prepareForSegue:sender:メソッドでデリゲートやその他のデータを設定します。次に例を示します。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    // Check the segue identifier 
    if ([segue.identifier isEqualToString:@"showDetail"]) 
    { 
     // Get a reference to your custom view controller 
     CustomViewController *customViewController = segue.destinationViewController; 

     // Set your custom view controller's delegate 
     customViewController.delegate = self; 
    } 
} 
+3

方法を:あなたの目的地ビューコントローラがUINavigationViewControllerある場合しかし、その後、あなたはUINavigationViewControllerからのUIViewControllerを取得する必要がありますか?私が見ているサンプルコードは、このようなウィンドウのルートビューのコントローラーで処理することでそれを処理します: 'UISplitViewController * splitViewController =(UISplitViewController *)self.window.rootViewController;'技術的に正しいとはいえ、動作しますが、代理人とビューコントローラがストーリーボードの前に設定されていたのに比べて、ダーティなアプローチ... –

0

ストーリーボードセグエ先ビューコントローラがのUIViewControllerであれば、@Marcoの答えは正しいです。 UISplitViewControllerのためのデリゲートを設定する方法について

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    // Check the segue identifier 
    if ([segue.identifier isEqualToString:@"chooseCategoryType"]) 
    { 
     // Get a reference of your custom view controller if your segue connection is an UIViewController 
     // CustomViewController *customViewController = segue.destinationViewController; 
     // Get a reference of your custom view controller from navigation view controller if your segue connection is an UINavigationViewController 
     CustomViewController *customViewController = [[[segue destinationViewController] viewControllers] objectAtIndex:0]; 

     // Set your custom view controller's delegate 
     customViewController.delegate = self; 
    } 
} 
関連する問題