我不明白其中的区别,随着新的 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:我正在使用单 View 应用程序。
最佳答案
从 Xcode 4.3+ 创建新的单 View iOS 应用程序时,没有任何默认的 ViewController.xib
。相反,您拥有 MainStoryboard_*.storyboard
,其中包含一个 Root View Controller ,您可以在其中添加标签、按钮或任何其他 UI 元素。
这个 Root View Controller 的标识是ViewController
,它引用ViewController.h/m
中定义的UIViewController
子类。当您在 Storyboard的 Root View Controller 中添加按钮时,可以按住 CTRL 键并将其拖动到 ViewController.h 来创建一个 socket (UI 元素和实例属性之间的连接),然后编写一些代码在ViewController.m
中。
让我们看一下下面的截图:
我在 Root View Controller 中添加了一个圆形矩形按钮,单击“助理编辑器”,然后按住 CTRL 键并将其拖动到 ViewController.h
中,并将导出命名为“button”。然后,在 -viewDidLoad
方法中,您可以执行以下操作:
[_button setTitle: @"myTitle" forState: UIControlStateNormal];
编辑
据我所知, Storyboard没有文件所有者。每个 View Controller 都使用自己的 UIViewController
子类实例单独实例化,您可以使用 self.window.rootViewController
从 AppDelegate.m
访问它们中的每一个。 code> 及其 subview 。所以“隐式文件所有者”是AppDelegate。
您可以遵循基于 Storyboard的教程,例如 this one .我个人不喜欢使用 Storyboard,因为太多的东西是隐含的。我每页有一个 xib( View Controller ),并从 appDelegate 中实例化的主 Root View Controller 单独加载它们。
要了解它在没有 Storyboard的情况下如何工作,Xcode 允许您选择在创建项目时不使用它们。您将获得一个从 AppDelegate
实例化的简单 ViewController.xib/h/m
。
关于objective-c - MainWindow.xib 和 ViewController.xib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11944149/