`
mikixiyou
  • 浏览: 1095871 次
  • 性别: Icon_minigender_1
  • 来自: 南京
博客专栏
C3c8d188-c0ab-3396-821d-b68331e21226
Oracle管理和开发
浏览量:352205
社区版块
存档分类
最新评论

storyboard和nib的差别

    博客分类:
  • iOS
阅读更多

在使用Storyboard管理的iOS应用中,它的组成部分为AppDelegate和ViewController这两个类以及MainStoryboard.storyboard文件组成。

Storyboard编辑器和Interface Builder很像(我觉得,他们其实就是一样的)。Storyboard管理不是一个视图控制器,而是所有的视图控制器。

建立在storyboard上的应用程序,在它启动时,使用 键UIMainStoryboardFile去指定必须被加载的storyboard的名字。

可以看到该类继承自UIResponder,这是使用storybaord的要求,而以前使用使用nib时,应用委托类是直接继承自NSObject的。
当这个设置提供后,UIApplication将加载MainStoryboard.storyboard文件,同时自动实例化来自storyboard的第一个视图控制器,将该视图控制器的视图们放入一个新的UIWindow对象中。这个过程不需编码。

(注:在nib管理的应用程序中,这个过程是需要编码的,加载视图控制器的所属视图和实例化UIWindow对象。)

iOS应用程序在系统上启动的过程是这样:
第一步,用户tap界面上的应用图标
第二步,应用调用main()函数
第三步,main()函数调用UIApplicationMain()函数。(注:在nib管理的应用程序中,最后一个参数是nil;而在storyboard管理的应用程序中,最后一个参数是AppDelegate的类名称。因为nib文件包含了appDelegate的名称,而storyboard中没有,所以必须在UIApplicationMain()中指定appDelegate的名称。)
main.m文件是应用启动的初始文件。打开main.m文件,如下所示:

#import <UIKit/UIKit.h>
#import "AppDelegate.h"

int main(int argc, char *argv[])
{
    @autoreleasepool {
             return UIApplicationMain(argc, argv, nil,
                      NSStringFromClass([AppDelegate class]));
   }
} 
 

在AppDelegate中,如下所示:

#import <UIKit/UIKit.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property ( strong, nonatomic ) UIWindow * window;
@end
 


 
而且该类只有一个UIWindow的属性,和nib管理的应用程序不同的是,这里没有IBOutlet前缀。这表示这个属性不是一个输出口。

分享到:
评论

相关推荐

    CollectionView:这里我在iOS中使用三种不同的方式实现UICollectionView,也就是一种瀑布流视图。分别使用storyboard、nib和纯代码的方式来实现

    分别使用storyboard、nib和纯代码的方式来实现。 ##1.项目说明    UICollectionView继承自UITableView,基本的实现方式同UITableView。用UICollectionView实现的视图就是所谓的瀑布流界面,很多的电商网站,图片...

    addChildViewController transitionFromViewController nib storyboard

    在iOS开发中,`addChildViewController`、`transitionFromViewController`以及`nib`和`storyboard`是四个关键概念,它们都是构建用户界面和管理视图控制器之间交互的重要工具。让我们详细了解一下这些知识点。 首先...

    iOS Storyboard全解析.pdf

    Storyboard将应用的所有视图控制器(View Controller)组织在一个可视化的流程图中,这样开发者可以非常直观地看到应用中不同界面和场景之间的关系。 首先,Storyboard的优点在于能够极大地提升开发效率。它减少了...

    nib2objc工具

    nib2objc工具是一款针对iOS开发的实用小工具,它的主要功能是将.xib或.storyboard文件转换为Objective-C代码,方便开发者快速地将界面设计与代码实现相结合。在这个过程中,nib2objc能够帮助开发者节省大量的手动...

    半手工打造一個Viewer (配合NIB)

    在iOS和macOS开发中,开发者通常会使用NIB或Storyboard来定义应用程序的用户界面。 描述中提到的“NULL”可能是由于信息缺失,没有提供具体的细节。不过,我们可以推测博主可能在文章中讨论了以下内容: 1. **...

    StoryBoard与xib互相调用

    在iOS应用开发中,StoryBoard和xib文件是两种常用的设计界面的方式,它们允许开发者以可视化的方式构建用户界面。本文将深入探讨如何在项目中实现StoryBoard与xib之间的互相调用,以及StoryBoard之间的直接调用。 ...

    StoryBoard学习

    相比传统的nib文件,storyboard有很多优点: 1.使用storyboard,可以更好地理解应用中所有视图在概念上的概览以及它们之间的关系。掌控所有的视图变得很容易,因为所有的设计都是在一个文件中,而不是在很多单独的...

    StoryBoardXibDemo:Storyboard和Xib混用黑魔法-swift版

    在iOS应用开发中,开发者通常会使用Storyboard和Xib(NIB)文件来管理用户界面。Storyboard用于构建应用程序的屏幕流程,而Xib文件则用于单独设计和复用UI组件。本项目"StoryBoardXibDemo"是Swift编程语言的一个示例...

    iOS---IBDesignable-IBInspectable:项目包含一种使用 IBdesignables 和 IBinspectables 将 Nib 文件加载到 StoryBoard 的方法

    总的来说,`IBDesignable`和`IBInspectable`提供了一种强大的方式来预览和定制自定义视图,而加载Nib文件到Storyboard则让复杂的界面设计变得更加方便。在Objective-C项目中应用这些技术,可以显著提升iOS应用的开发...

    IOS无nib文件实现tableview

    通常,开发者会使用Interface Builder(IB)中的nib或storyboard文件来设计和布局UITableView,但是,有些情况下,我们可能需要纯代码的方式来创建和管理UITableView。"IOS无nib文件实现tableview"这个DEMO就是展示...

    UITableViewCell的四种不同的定制单元格方式

    每种定制方式都有其适用场景,使用Storyboard和nib文件方便可视化设计,适合快速构建原型;纯代码创建提供了最大的灵活性,但需要更多的编码工作;基于系统cell的定制则是一种折衷方案,既节省时间又能实现一定的...

    NibLoadedView:Swift UIView 子类,它从用于小部件开发的配套 NIB 加载自身

    如果您的类扩展了此类,您可以使用自定义类在 Storyboard 或 Nib 文件中设置 UIView,它会加载一个类似命名的.xib文件。 例如,如果您构建MyView.xib和MyView.swift ,请将 Interface Builder 中的自定义类设置为...

    X6 storyBoard下 自定义多个不同cell

    在iOS开发中,创建用户界面时,我们经常使用Storyboard来设计和管理应用的视图控制器。`Xcode6`引入了StoryBoard的概念,它提供了一种可视化的方式来布局UI元素,并且可以直接在界面上进行交互,大大提高了开发效率...

    Xcode6.1创建仅xib文件无storyboard的hello world应用

    XIB文件是一种XML格式,用于描述用户界面元素和它们的布局,它们提供了与Storyboard类似的功能,但更加独立且便于单独管理。 首先,启动Xcode 6.1并选择"Create a new Xcode project"。在模板选择器中,选择...

    iOS应用开发中StoryBoard搭建UI界面的基本使用讲解

    StoryBoard 是苹果在 iOS 5 中引入的新技术方案,目的是给纷繁复杂的 nib、xib 们一个温暖的家,让他们之间的关系更直观地展示出来,并提供了一种新的页面间跳转方式 segue。 StoryBoard 的本质是一个 XML 文件,...

    OS X最佳(?)日期范围选择器控件。-Swift开发

    用法只需将日期范围选择器拖到Storyboard或Nib上即可。 在带有segmentStyle = .Separated的工具栏中,它看起来特别好。 如果希望将选择器放在工具栏的中央,我建议使用TAAdaptiveSpaceItem。 您可以通过键值观察...

    UIViewController Demo源代码

    本示例源代码提供了 `UIViewController` 的两种创建方式:带有nib(XIB)文件和不带nib文件。接下来,我们将深入探讨这两个方法及其相关知识点。 1. **UIViewController与nib文件** nib(.xib)文件是iOS中用于...

    Storyboards-1.zip

    Xib/Nib files**:虽然Storyboard提供了一种集中的方式来管理UI,但有些开发者更喜欢使用独立的Xib/Nib文件,以提高代码可重用性和模块化。选择哪种方式取决于项目的具体需求和个人偏好。 8. **-nil storyboard**...

    ios_app资源

    10. **Interface Builder**:Xcode的一个组成部分,用于与Storyboard和Nib文件协同工作,进行界面设计和实时预览。 在处理"ios_app"压缩包时,开发者需要确保所有文件都按照Xcode的项目结构进行组织,遵循iOS应用的...

Global site tag (gtag.js) - Google Analytics