私は、新しい xcode 5 ストーリーボード パラダイムを使用しようとしてきましたが、特に .xib ファイルを作成するのではありません。2 つの VC があります。1 つ目は Xcode によって作成され、2 つ目は UIViewController を InterfaceBuilder にドロップすることによって作成されました。
私の問題は、2 番目の VC にカスタム クラスを指定し、ヘッダーを最初の VC にインポートしたにもかかわらず、プログラムで 2 番目の VC を作成すると、InterfaceBuilder で設定した設計に準拠しないことです。最初のものはそうします。
2 番目の VC を作成するコードは次のようになります (ImagePickerControllerDelegate メソッド内にあります)。
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage *chosenImage = [info objectForKey:UIImagePickerControllerEditedImage];
NCPhotoViewController *newController = [[NCPhotoViewController alloc] init];
newController.theImage = chosenImage;
** NEW CODE newController.theImageView.image = newController.theImage;
[self dismissViewControllerAnimated:YES completion:^{
[self presentViewController:newController animated:YES completion:NULL];
}];
...これは問題ないようで、私がやりたいことを行います-新しいView Controllerを起動します。問題は、IB で設定したレイアウトでは読み込まれないということです。alloc] init]
メソッドを交換しようとしましたinitWithNibName:bundle:
が、ペン先ではないことに気付きました... .xib ファイルを作成せずに IB でこの接続を確立する方法はありますか、それとも Xcode 5 の新しいフローを誤解していますか? Identity Inspector に Storyboard ID 属性があることは知っていますが、それをどのように活用すればよいでしょうか? デフォルトでそこに配置されていない場合、「古い方法」でやりたくありません...
TL;DR - IB レイアウトの ViewController が、Xcode 5 のデフォルトのストーリーボード フローでプログラムによって呼び出されたときに、意図したとおりに見えるようにしたいと考えています。
新しいviewcontrollerのimageviewに画像を表示するコードを追加しましたが、表示されません...
編集:新しいviewcontroller.hファイルにメソッドを追加するself.theImageView.image = theImage;
必要viewDidLoad
がありました-しかし、私が書いたコードですでにそれを行うべきではありませんか?