在使用objective c的时候,调用ViewController的默认构造函数,会自动关联到一个与ViewController名字相同的xib文件上,这样无疑方便了开发者,减少了代码量。但不知道为什么,在swift中,新建ViewController实例,不在默认关联xib,一定要开发者指定xib的名字,这对于有代码洁癖的人是不可接受的,因为通常情况下,xib的名字一定是和ViewController的名字相同的。本文讲介绍一种方案去解决这个问题。
Objective C中的写法
TwoViewController *v = [[TwoViewController alloc] init]; //这样会把TwoViewController默认关联到TwoViewController.xib上 //等同调用了方法 TwoViewController *v = [[TwoViewController alloc] initWithNibName:@"TwoViewController" bundle:nil];
Swift中的写法
let v = TwoViewController() //不会关联TwoViewController.xib文件 //一定要指定xib文件 let v = TwoViewController(nibName: "TwoViewController", bundle: nil)
我们改怎样让TwoViewController()去找同名字的xib文件呢,其实原来很简单,重写init方法就行了, 新建BaseViewController.swift 重写init方法,其他的ViewController继续于BaseViewController。
override init() { super.init(nibName: (self.classForCoder.description() as NSString) .componentsSeparatedByString(".")[1] as NSString, bundle: NSBundle.mainBundle()) } required init(coder aDecoder: NSCoder) { super.init(coder: aDecoder) }
实现原来
获取当前Class的名字,在swift中class名字前会加入Module名字,所以这里以'.'划分,取'.'后面的字符串.
相关推荐
在Swift编程中,XIB(Interface Builder)文件是用于创建用户界面的一种方式,它可以与代码紧密结合,提供可视化设计工具来构建UI元素。本教程将详细解释如何在Swift中创建XIB视图和按钮,并通过一个DEMO来演示具体...
本教程将详细介绍如何在Swift中使用XIB来设置和操作UIScrollView。 首先,我们需要创建一个新的XIB文件。在Xcode中,选择`File` > `New` > `File...`,然后在User Interface类别下选择`View`。接着,给XIB文件命名...
在Swift开发中,当我们在ViewController中进行网络加载时,经常需要展示一些反馈信息给用户,如加载中、加载失败或无数据等情况。这些状态通常通过进度条视图或者遮罩层来实现,以提高用户体验。"swift-...
通过阅读和分析这些代码,你可以更深入地理解如何在Swift中实现类似Facebook的滑动和滚动拉消失的ViewController效果。记得实践是学习编程的最好方式,尝试将这些知识应用到你的项目中,以提高你的Swift UI开发技能...
3. 在XIB文件中,我们将`MyViewController`与`MyProtocol`关联: - 打开XIB文件,选择你的ViewController实例。 - 在Inspector窗口的Identity Inspector中,将Class设置为`MyViewController`。 - 接下来,找到...
项目创建完成后,Xcode会自动创建一个ViewController类,但默认情况下它会关联到一个Storyboard文件。我们需要修改这个设置。打开"Main.storyboard"文件,然后在右侧面板的Identity Inspector中,取消对"Is Initial ...
本篇文章将深入探讨如何在Swift中自定义`presentViewController`的转场动画,帮助开发者创建出独特且吸引人的界面过渡效果。 首先,我们需要了解`UIViewControllerTransitioningDelegate`协议。这个协议提供了...
在iOS应用开发中,XIB(Interface Builder Document)文件用于设计和组织用户界面。XIB文件可以独立于代码存在,提供了可视化布局的方式,方便开发者快速构建UI。本篇将详细讲解如何在iOS App中实现XIB之间的跳转,...
例如,如果你有一个名为`MyView.xib`,你可以创建一个`MyView.swift`文件,其中定义一个`MyView`类继承自`UIView`,并在`awakeFromNib`方法中加载.xib: ```swift import UIKit class MyView: UIView { ...
UIViewController提供了`present`和`dismiss`方法来显示和隐藏其他视图控制器,而这些操作默认伴随着系统提供的过渡动画。但为了实现个性化的动画效果,我们需要自定义这些过渡动画。 在Swift中,我们可以利用`...
创建一个XIB文件,设计好UI元素,然后在代码中加载这个XIB,将其添加到ViewController的视图层次结构中。 3. **动态Cell**:在UITableView或UICollectionView中,使用XIB为Cell创建自定义模板。这使得Cell的布局和...
xib文件适合于那些不需要复杂导航结构或需要复用的界面。在xib中,你可以手动添加控件,配置约束,以及设置视图控制器的属性。要实现xib之间的跳转,你需要在代码中进行手动管理,例如: ```swift let storyboard =...
在Swift编程中,`UITableView`是用于展示列表数据的核心组件,广泛应用于iOS应用开发中。本教程通过一个具体的Demo,讲解了如何结合XIB(Interface Builder的界面文件)、自动布局(Auto Layout)来创建和使用`...
创建项目后,我们会看到一个默认的`ViewController.m`文件,其中包含一个简单的`loadView`方法,该方法已经在代码中初始化了一个UILabel来显示"Hello, World!"。我们可以修改这个方法,以不依赖XIB文件: ```...
在这个例子中,我们将探讨如何使用Swift在Mac应用程序中实现打开选择文件目录和文件的功能,并支持多选。首先,我们需要了解几个关键的类和方法: 1. `NSOpenPanel`: 这是 macOS SDK 中用于创建文件选择对话框的类...
在Swift开发过程中,我们经常会遇到一个困扰用户界面(UI)设计的问题:当用户在文本视图(如textView或textField)中输入时,弹出的键盘可能会遮挡这些输入控件,影响用户体验。为了解决这个问题,我们可以引入一个...
本篇文章将深入探讨如何使用Swift和QLPreviewController来实现iOS中的文件预览功能。 QLPreviewController是QuickLook框架的一部分,它允许用户在不离开应用的情况下查看文件内容,极大地提升了用户体验。Swift...
这里我们将详细探讨三种在iOS中实现ViewController切换并传值的方法:代理(Delegation)、键值编码(Key-Value Coding,KVC)和封装在自定义初始化方法中的参数。 **1. 代理(Delegation)** 代理是iOS开发中最...
在iOS应用开发中,ViewController扮演了核心的角色,用于管理应用程序的视图层次结构。其核心职责包括处理用户输入、视图的展示以及数据的展示。本文将详细解释ViewController的使用方法,尤其是UITabBarController...
这个示例可能包含了一个Objective-C的主入口文件,如`ViewController.m`,它通过桥接头文件引入了Swift类,并在某个方法中创建并调用了Swift类的实例。 **5. 注意事项** - Swift的命名规则与Objective-C不同,可能...