1

セグエを使わずにシーンに移動しようとしています。私が使用しているコードは次のようになります。

UIStoryboard * storyboard = [UIStoryboard storyboardWithName:storyboardName bundle:nil];
MyViewController * controller = (MyViewController *)[storyboard instantiateViewControllerWithIdentifier:viewControllerID];
[self presentViewController:controller animated:YES completion:nil];

私の問題は、このシーンのデリゲートを設定することです。通常、私は次のことを行います。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // Check the segue identifier
    if ([[segue identifier] isEqualToString:@"showDetail"])
    {
        [[segue destinationViewController] setDelegate:self];
    }
}

しかし、私はセグエを使いたくありません。シーンのデリゲートを設定する方法を教えてもらえますか?

ありがとう

4

3 に答える 3

2
UIStoryboard * storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
DetailViewController * controller = (DetailViewController *)[storyboard instantiateViewControllerWithIdentifier:@"DetailView"];
controller.delegate = self;
[self presentViewController:controller animated:YES completion:nil];
于 2013-03-08T08:39:34.650 に答える
0

ロードしているシーンのデリゲートを設定できます。

「destinationViewController」には「ViewWillAppear」メソッドがあります。そこで、デリゲートを自分自身に設定できます。

于 2013-03-08T08:36:51.087 に答える
0

prepareForSegue:sender:新しいコントローラーへの参照が既にあるので、次の行の後にメソッドを実装する必要はありません。

MyViewController * controller = (MyViewController *)[storyboard instantiateViewControllerWithIdentifier:viewControllerID];

追加するだけです:

[controller setDelegate:self];
于 2013-03-08T08:37:02.740 に答える