1

我已经在 iOS 应用程序上工作了一段时间,我想我没有使用我为我的应用程序创建的故事板文件/场景正确创建的视图控制器。

就目前而言,我有两个故事板文件,一个用于 iPhone,另一个用于 iPad。在AppDelegate实现文件中有一个方法叫做,

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

我一直在从这个方法中加载一个 ViewController 来启动我的应用程序的加载过程。

由于我现在有两个故事板文件,因此我获取了一些条件代码来根据运行应用程序的设备加载特定的故事板文件。

加载情节提要文件的正确方法是什么?

加载故事板文件后,我是否初始化根视图控制器?

一旦我的根视图控制器被加载,它应该加载根场景中指定的元素吗?

如果我选择通过单击根场景中的按钮从根场景加载另一个场景,我应该关闭根场景并加载新场景,还是新场景是父场景的子类? 在场景之间过渡的正确方法是什么?

基本上,我的应用程序中的每个场景都有一个单独的视图控制器,并且我已经指定了一个与 IB 中的每个场景关联的视图控制器。

现在我有一个按钮,可以从开始/根场景按下以加载与另一个视图控制器关联的另一个场景。在这个新场景中,我有一个完成按钮,它返回到根视图控制器。

如果我通过反复单击按钮来重复单击这两个按钮,我是在创建视图控制器的新对象还是在重用已经创建的对象?

我知道这不仅仅是一个问题,但我试图很好地掌握视图生命周期,视图控制器与场景的关系,以及加载第一个视图控制器的正确方法,它应该在应用程序中加载第一个场景假设。

4

1 回答 1

1

加载情节提要文件的正确方法是什么?

在类导航器中单击您的项目。这是您可以在其中单击的最上面的内容,上面有您的应用程序的名称。一些配置文件将在您的源代码所在的位置打开,您需要找到可以为不同设备指定情节提要的文件。我认为它是左侧的第二个选项卡,但我现在无法检查。您只需指定一个用于 iphone 的故事板和一个用于 ipad 的故事板,就可以了。

编辑:您还需要为两个故事板文件指定一个 initailView。这可以通过简单地在情节提要中打开身份检查器(我认为)并选中有问题的视图并选中“是初始视图”旁边的框来完成。如果我记错了,请尝试所有四个检查员。它会在那里,我保证;)

在场景之间过渡的正确方法是什么?

在大多数情况下,您将使用 segue。这些东西在故事板中是新的,它们就是炸弹。有一种方法可以实现,称为

-(void)prepareForSegue:(UIStoryboardSegue *) sender:(id)sender

您可以在其中检查 segue 的标识符,然后直接操作destinationViewController-properties。这是一个很好的教程: http: //www.appcoda.com/storyboards-ios-tutorial-pass-data-between-view-controller-with-segue/

但是,如果您不能使用 segue,那么您将需要一个 rootViewController 来显示比模态视图更多的内容。基本上,rootViewControllers 管理一堆视图,而不是你的事。根据您的 UI,您可能需要 NavigationViewController 或 TabBarViewController,只需 google 两者,看看最适合您的。

有任何问题都可以提出来,很高兴能帮到你。玩得开心

于 2013-01-19T00:13:33.883 回答