【问题标题】:MainWindow.xib and ViewController.xibMainWindow.xib 和 ViewController.xib
【发布时间】:2012-08-14 00:28:28
【问题描述】:

我不明白其中的区别,并且随着新 xcode 4 的发布(我有最新的 4.4.1),我无法阅读我买的一些书,我迷路了。

书中说我需要点击myprogramViewController.xib,但是在新的xcode中没有出现,我需要创建吗?

还缺少 MainWindow.xib(但我已经创建了它),书中还说打开 myapplicationViewController.m 和 myapplicationViewController.h 进行一些更改(我想这是相同的 ViewController.m 和 myapplicationViewController .m 和 .h 相同)我很困惑。

那么我应该在哪里拖动按钮和标签以及所有这些东西?在 MainWindow 中还是在 ViewController 中? (但是我需要创建ViewController吗?)我指的是.xib,因为我只有ViewController.m和ViewController.h,.xib没有了。

我需要一些帮助,谢谢大家!

PS:我正在使用单视图应用程序。

【问题讨论】:

    标签: objective-c cocoa-touch xcode4 ios


    【解决方案1】:

    从 Xcode 4.3+ 创建新的单视图 iOS 应用程序时,没有任何默认 ViewController.xib。相反,您拥有 MainStoryboard_*.storyboard,其中包含一个根视图控制器,您可以在其中添加标签、按钮或任何其他 UI 元素。

    这个根视图控制器的标识是ViewController,它指的是ViewController.h/m中定义的UIViewController子类。当你在storyboard的根视图控制器中添加一个按钮时,你可以CTRL+拖动它到ViewController.h来创建一个outlet(一个UI元素和一个实例属性之间的连接),然后在ViewController.m中写一些代码。

    我们来看看下面的截图:

    我在根视图控制器中添加了一个圆形矩形按钮,单击“助手编辑器”,然后 CTRL+将其拖动到ViewController.h,并将出口命名为“按钮”。然后,在-viewDidLoad 方法中,您可以执行以下操作:

    [_button setTitle: @"myTitle" forState: UIControlStateNormal];
    

    编辑

    据我所知,情节提要没有文件所有者。每个视图控制器都使用它们自己的UIViewController 子类实例单独实例化,您可以使用self.window.rootViewController 及其子视图从AppDelegate.m 访问它们中的每一个。所以“隐式文件所有者”是 AppDelegate。

    您可以遵循基于故事板的教程,例如 this one。我个人不喜欢使用故事板,因为太多的东西是隐含的。我每页有一个 xib(视图控制器),并将它们与 appDelegate 中实例化的主根视图控制器分开加载。

    要了解它在没有故事板的情况下如何工作,Xcode 允许您在创建项目时选择不使用它们。你会得到一个从AppDelegate 实例化的简单ViewController.xib/h/m

    【讨论】:

    • 如果我在 MainStoryboard 中添加按钮和标签,如果我需要将该按钮连接到文件的所有者,文件所有者不会出现在 MainStoryboard 上,那么我需要做什么做?在 MainWindow.xib 中出现 FileOwner,但在 Storyboard 中没有。为什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-14
    • 1970-01-01
    • 2012-08-10
    • 2015-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多