2011-11-29 59 views
2

我在切换视图时遇到问题。我使用的是模拟器的xcode 4.2IOS切换视图和故事板不起作用

故事板包含:

  • 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行成ViewEntryImageControllerviewDidLoad功能,它的工作原理,那么什么是黑色的窗口,哪里是我的视图控制器?

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

我试过另一个版本,我创建了一个UIViewController类,但现在用xib文件。我使用它而不是ViewEntryImageController,它的工作原理。为什么? 我也想在故事板中使用这个控制器。

回答

1

试试这样说:

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

如果你不使用笔尖的名字,而是用故事板,这是一个有点困难。通过按住ctrl并从一个视图拖动到另一个视图,从控制器创建一个segue到ViewEntryImageController控制器。点击这个segue并给它一个标识符。

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

+0

它也可以工作。再次感谢! – mudlee

4

ViewEntryImageController类本身没有关于如何构建对话框的信息。

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

这是假设的StoryboardFileName故事板名称和视图进入图像控制器具有ViewEntryImage集的视图属性标识符(属性检查器中,部分:但是你可以自己从故事板实例化视图控制器“视图控制器”)。

+0

非常感谢,它工作正常! – mudlee

+0

接受答案或者如果确实有效,至少可以投票;-)(每个问题只能接受一个答案) –

+0

是的,我知道。你的回答非常好,但前面的代码更短,我喜欢短代码:)我试着投票,但我还没有,因为:“投票需要15点声望”,非常抱歉,很多再次感谢。 当我得到这个,我回来并投票了:) – mudlee