IOS Switch视图和故事板不起作用

时间:2011-11-29 09:50:01

标签: ios xcode uiviewcontroller storyboard nslog

切换视图时遇到问题。我正在使用带有xcode 4.2的模拟器

故事板包含:

  • NavigationController(初始视图控制器)
  • 与导航控制器有关系的
  • UIViewController
  • UIViewController(与我的自定义类配对:ViewEntryImageController)没有任何关系。包含一个按钮,一个带有一些工具栏按钮的底部工具栏。

用户进入UIViewController,在那里他可以看到ScrollViewScrollView部分图片。

图片有一个手势:

    UITapGestureRecognizer *recognizer=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(openEntryImage)];
    [image addGestureRecognizer:recognizer];
    [recognizer release];

openEntryImage函数:

(IBAction)openEntryImage
{
    ViewEntryImageController *controller=[[ViewEntryImageController alloc]initWithNibName:nil bundle:nil];
    controller.modalTransitionStyle=UIModalTransitionStyleCrossDissolve;
    [self presentModalViewController:controller animated:YES];
    [controller release];
}

当我尝试点按图片时,openEntryImage同样有效(效果正确),但我看不到我的ViewEntryImageController视图和我的按钮,我只看到一个黑色的窗户。

我尝试将 NSLog 行放入ViewEntryImageController viewDidLoad函数,它可以工作,那么什么是黑色窗口以及我的视图控制器在哪里?

当我尝试使用pushViewController时,在新视图中我找到了一个带有后退按钮的导航工具栏,但没有其他控件。

我尝试了另一个版本,我创建了一个UIViewController类,但现在有一个 xib 文件。我使用它代替ViewEntryImageController并且它有效。为什么? 我也想在故事板中使用这个控制器。

2 个答案:

答案 0 :(得分:4)

ViewEntryImageController类本身没有关于如何构建对话框的信息。但您可以从故事板中自行实例化视图控制器:

UIStoryboard *myStoryboard = [UIStoryboard storyboardWithName:@"StoryboardFileName" bundle:nil];
ViewEntryImageController *controller = (ViewEntryImageController *)[myStoryboard instantiateViewControllerWithIdentifier:@"ViewEntryImage"];

这假定故事板名称为StoryboardFileName,并且视图条目图像控制器在视图属性中设置了ViewEntryImage标识符(属性检查器,部分"视图控制器")

答案 1 :(得分:1)

试试这样:

ViewEntryImageController *controller=[[ViewEntryImageController alloc]initWithNibName:@"ViewEntryImageController" bundle:nil];

如果你不使用.nib名称而是使用故事板,那就更难了。通过按住Ctrl并从一个视图拖动到另一个视图,从控制器到ViewEntryImageController控制器创建一个segue。单击此segue并为其指定标识符。

然后使用[self performSegue:@"identifier"];函数显示下一个视图。