1 interface-builder storyboard uiviewcontroller ios xcode5
我一直在尝试使用新的xcode 5 storyboard范例,而不是专门创建.xib文件.我有两个VC - 第一个是由Xcode创建的,第二个是通过将UIViewController放入InterfaceBuilder创建的.
我的问题是,即使我给了我的第二个VC一个自定义类并将头文件导入第一个VC,当我以编程方式创建第二个VC时,它不符合我在InterfaceBuilder中设置的设计.第一个是.
我创建第二个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];
}];
Run Code Online (Sandbox Code Playgroud)
......看起来很好,做了我想要的 - 带来了一个新的视图控制器.事实是,它没有加载我在IB中设置的布局.我尝试交换alloc] init]方法,initWithNibName:bundle:但意识到我没有笔尖...有没有办法在IB中建立这种连接而不创建.xib文件,或者我误解了Xcode 5的新流程?我知道Identity Inspector中有一个Storyboard ID属性,但是如何使用它呢?如果他们没有被默认放在那里,我不想做"旧方式"的事情......
TL; DR - 我希望我的IB布局的ViewController能够在Xcode 5默认故事板流程中以编程方式调用它的方式.
添加了一些代码,使新的viewcontroller的imageview有一个图像,但它没有出现...
编辑:我不得不添加self.theImageView.image = theImage;的viewDidLoad方法在我的新viewcontroller.h文件-但不应该它已经做到这一点的代码,我写的吗?
如果您在故事板中设置控制器,则应从中加载它.如果您的代码已经位于同一故事板的某个控制器中,您可以通过以下方式执行此操作:
UIStoryboard *sb = self.storyboard;
NCPhotoViewController * newController = [sb instantiateViewControllerWithIdentifier:@"SomeIdentifier"];
...
Run Code Online (Sandbox Code Playgroud)
您还需要将视图控制器的Storyboard ID设置为"SomeIdentifier",以便storyboard知道要实例化哪个控制器.以下是IB在"工具"窗格中的显示方式:

| 归档时间: |
|
| 查看次数: |
4413 次 |
| 最近记录: |