2012-01-24 8 views
0

私は、iOSデベロッパーライブラリのCoreDataBooksの例に従ってコードを設計しました。 UINavigationControlで+ボタンを押すと、iOSアドレス帳のビューと同様に、カスタムAddViewControllerへのセグが表示されます。UINavigationControllerで表示されるカスタムビューを初期化するにはどうすればよいですか?

CoreDataBooksのように、私はUITableViewコントローラの代わりにカスタムビューコントローラを使用します。だから、CoreDataBooksにビューコントローラを提示するコードは次のようになります。

AddViewController *addViewController = [[AddViewController alloc] initWithStyle:UITableViewStyleGrouped]; 
addViewController.delegate = self; 
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:addViewController]; 

[self.navigationController presentModalViewController:navController animated:YES]; 

と私は次のようになります。

AddViewController *addViewController = [[AddViewController alloc] init]; 
[addViewController setDelegate: self]; 
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:addViewController]; 

[self.navigationController presentModalViewController:navController animated:YES]; 

だから、基本的には同じだが、私はないinitでAddViewControllerを初期化し、とinitWithStyleメソッドはUITableViewControllerによって継承されます。

カスタムビューコントローラを正しく初期化するにはどうすればよいですか?私はinitメソッドで[super init]を呼び出そうとしましたが、これは助けになりませんでした。

+0

あなたはAddViewControllerから、あなたの 'init'方法を投稿することができますか? –

+0

最初はinitメソッドがありませんでした。私は1つを書き、スーパークラスのinitを呼び出そうとしました。 – Johannes

+0

申し訳ありませんが、どの初期化メソッドが呼び出されたかはわかりません。この話題(特にStoryBoards)に関する良いリソースがあれば、私は感謝します。 – Johannes

答えて

0

アプリケーションフローを設計するためにストーリーボードを使用しているので、モーダルプレゼンテーションをストーリーボードにモーダルセグメントとして定義し、セグメントに識別子を与え、ルートビューコントローラでprepareForSegue:sender:を上書きする必要があります。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 

    if ([segue.identifier isEqualToString:@"MySegueIdentifier"]) { 

     AddViewController *destination = [[[segue destinationViewController] viewControllers] objectAtIndex:0]; 
     [destination setDelegate:self]; 
    } 
} 

+0

私はストーリーボードでビューを作成する可能性を認識しています。しかし、私はコードからそれをやりたいです。どのinitメソッドがストーリーボードから呼び出されたのか分かっていれば、コードから同じメソッドを呼び出すことができ、私の問題は解決されます。 – Johannes

+0

..ストーリーボードを使用する場合は、コードからの任意のビューのインスタンス化を試みるべきではありません。 – Johannes

関連する問題