Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 在a";“单视图应用程序”;_Objective C_Ios - Fatal编程技术网

Objective c 在a";“单视图应用程序”;

Objective c 在a";“单视图应用程序”;,objective-c,ios,Objective C,Ios,免责声明:我对iOS开发非常陌生。请原谅这个问题的愚蠢:) 我在XCode中启动了一个“单视图应用程序”,现在它在一个“故事板”中有了一个接口,所有这些都与代码连接在一起,工作得很好。现在,我意识到我需要另一种观点。最简单的方法是什么(现在创建另一个视图,并在代码中在它们之间切换)。我真的不在乎动画 任何帮助都将不胜感激。谢谢 编辑:非常感谢您的帮助。我最终创建了一个没有弧或故事板的新项目,并将最低版本设置为4.0。然后我使用Mats Stijlaart的答案。最简单的方法是使用导航控制器和另

免责声明:我对iOS开发非常陌生。请原谅这个问题的愚蠢:)

我在XCode中启动了一个“单视图应用程序”,现在它在一个“故事板”中有了一个接口,所有这些都与代码连接在一起,工作得很好。现在,我意识到我需要另一种观点。最简单的方法是什么(现在创建另一个视图,并在代码中在它们之间切换)。我真的不在乎动画

任何帮助都将不胜感激。谢谢



编辑:非常感谢您的帮助。我最终创建了一个没有弧或故事板的新项目,并将最低版本设置为4.0。然后我使用Mats Stijlaart的答案。

最简单的方法是使用导航控制器和另一个ViewController

在情节提要中,选择其中存在的ViewController。然后,单击菜单中的“编辑器”并选择“嵌入”>NavigationController

其次,创建一个新的UIViewcontroller子类,将UIViewcontroller拖到情节提要上。并在Identity Inspector中将其类设置为刚刚创建的viewcontroller

第三,单击ctrl键并从第一个viewController拖动到刚才拖动到情节提要上的viewController。将弹出一个弹出窗口。单击“推送”。您刚刚创建了一个segue。祝贺你:)

单击分段(视图控制器之间的线),并在属性检查器中为其指定一个标识符

接下来,在代码中,执行以下操作([segue identifier]是您刚才给出的标识符):


我想就是这样!希望我没有忘记任何重要的事情;)

在项目中添加新的UIViewController子类

在情节提要中,将新的视图控制器拖动到现有情节提要旁边的情节提要中。在标识检查器中,将自定义类设置为新的视图控制器类

在原始视图控制器上放置一个新按钮,然后按ctrl键将其拖动到新的视图控制器上。从序列类型弹出窗口中选择“模态”

此时,您将能够运行应用程序,按下“新建”按钮,新视图控制器的视图将出现


要切换回第一个视图,您需要在新视图控制器中使用另一个按钮,该按钮调用
dismissModalViewController:animated:
。剩下的就看你了!祝你好运

如果要从XIB创建新视图,请执行以下操作:

  • 创建UIViewController子类。(.h+.m)
  • 做一个空的锡伯
  • 使UIViewController子类成为XIB的文件所有者
  • 添加一个UIView
  • Ctr从文件所有者拖动到UIView,以将视图属性链接到UIView
  • 提出你的观点
在你的代码中。 我假设您当前有一个控制器类,它链接到屏幕上显示的视图

在这个控制器中,您可能有一个事件,您希望将其耦合以显示一个新视图。比如说myEvent

- (IBAction) myEvent:(id)sender {
    ViewControllerSubClass *subClass = [[ViewControllerSubClass alloc] initWithNibName:@"YourXIB" bundle:nil];
    subClass.view.frame = self.view.frame;
    subClass.view.autoresizingMask = self.view.autoresizingMask;
    [self.view.superview addSubview:subClass.view];

    //ARC
    instanceVarSubClass = subClass;

    //NO ARC
    self.instanceVarSubClass = subClass;
    [subClass release];
}
您应该创建一个强实例变量(ARC)或带有(retain)关键字的属性


希望这会有所帮助。

我对iOS开发也很陌生,没有太多故事板方面的经验,但我为客户开发的应用程序在他们的需求方面相当简单,因此我希望能够针对4.0之前的iOS版本

如果您的应用程序的情况类似(即您不使用iOS 4/5的任何主要功能),那么我建议您坚持使用XIB文件。ThomasM给出了比我使用故事板更详细的答案,但对于XIB和NavigationController,它非常简单:

[self.navigationController pushViewController:dvController animated:YES];

你不需要代码来执行这个序列,因为故事板已经可以了,但是我想不出你错过了什么。很好的回答和我的一个合理的替代方案-OP现在可以选择是否需要导航或模式视图。抱歉,收回我的评论的第一部分-如果您刚刚将其从一个视图控制器连接到下一个视图控制器,您将需要代码来执行该过程。我以为你说过用按钮连接它。
[self.navigationController pushViewController:dvController animated:YES];