MainWindow.xib和ViewController.xib

时间:2012-08-14 00:28:28

标签: objective-c cocoa-touch xcode4 ios

我不明白它的区别,随着新的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:我正在使用单一视图应用程序。

1 个答案:

答案 0 :(得分:1)

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

此根视图控制器的标识为ViewController,它引用UIViewController中定义的ViewController.h/m子类。在Storyboard的根视图控制器中添加按钮时,可以按CTRL +将其拖动到ViewController.h以创建插座(UI元素和实例属性之间的连接),然后在{{1}中编写一些代码}。

让我们看看下面的截图:

enter image description here

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

-viewDidLoad

修改

据我所知,故事板没有文件所有者。每个视图控制器都使用自己的[_button setTitle: @"myTitle" forState: UIControlStateNormal]; 子类实例单独实例化,您可以使用UIViewController及其子视图从AppDelegate.m访问每个视图控制器中的每一个。所以“隐式文件所有者”是AppDelegate。

您可以按照this one之类的基于故事板的教程进行操作。我个人不喜欢使用故事板,因为太多事情是隐含的。我每页有一个xib(视图控制器),并从appDelegate中实例化的主根视图控制器中单独加载它们。

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