objective-c - MainWindow.xib 和 ViewController.xib

标签 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:我正在使用单 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中。

让我们看一下下面的截图:

enter image description here

我在 Root View Controller 中添加了一个圆形矩形按钮,单击“助理编辑器”,然后按住 CTRL 键并将其拖动到 ViewController.h 中,并将导出命名为“button”。然后,在 -viewDidLoad 方法中,您可以执行以下操作:

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

编辑

据我所知, Storyboard没有文件所有者。每个 View Controller 都使用自己的 UIViewController 子类实例单独实例化,您可以使用 self.window.rootViewControllerAppDelegate.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/

相关文章:

objective-c - iOS 应用程序启动时间太长无法显示

xcode4 - 如何在 Xcode 中的另一个页面上生成 Int 分数

iphone - 如何在其中包含与 OBJECT 文件名称相同的静态库?

ios - 如何正确弃用 Xcode 4 中的方法

iphone - "error launching remote program: device locked out"xcode 4.2.1 和 ipad 5.0.1

iphone - 如何从 iPhone 应用程序发送邮件?

ios - 如何调整 UITabBarItem 的大小?

objective-c - ASIHttpRequest 将 ASync 请求的响应发送回 View Controller

objective-c - 如何检测捏合手势与捏合手势?

ios - 如何禁用 UIButton 的高亮控件状态?