uiviewcontroller-swift怎么重写父类的init方法

问题描述

swift怎么重写父类的init方法

我想重写UITextFiled的方法,在init(frame)上加一个参数,init(frame:CGRECT,uiviewcontroller:UIViewController)请问如何重写

解决方案

重写是相同方法的不同实现,参数不同方法就不同了,楼主是想重载,如下两个例子可以清晰表现用法和区别:

例如UIView重写父类的init(frame: CGRect)方法:
override init(frame: CGRect) {
super.init(frame: frame)
//do something what you want
}
重写的话swift规定不可以缺少这个request init方法:(编译器会自动提示)
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
fatalError("init(coder:) has not been implemented")
}

重载父类的init(frame: GCRect),增加一个新参数:
init(frame: CGRect, type: String) {
super.init(frame: frame)
//do something what you want
print(type)
}

最后附上截图:

解决方案二:

重写init方法

时间: 2024-12-25 11:11:19

uiviewcontroller-swift怎么重写父类的init方法的相关文章

iOS重写父类中的方法时要先调用父类中的方法的原因

现有两个类: 1.Object001继承自NSObject #import <Foundation/Foundation.h>   @interface Object001 : NSObject   //Object001的头文件,我只是在这里面声明了个方法 -(void)printfString;   @end   #import "Object001.h"   @implementation Object001   //Object001的实现文件,我实现了声明的pri

多态-java中为什么会自动执行子类重写父类的方法?

问题描述 java中为什么会自动执行子类重写父类的方法? 问题: 1.在main方法中我没有调用paint方法,为什么它会自动被调用? 2.老师说这是多态,可是多态不是需要三个条件实现么?继承,重写方法,父类引用指向子类对象,这里没有第三点啊 代码如下: public class GameFrame extends Frame{ public void launchFrame(){ setSize(500,500); setLocation(100,100); setVisible(true);

解决重写父类的方法且不会影响继承的子类的问题

解决重写父类的方法且不会影响继承的子类的问题 基类的方法被所有继承的子类继承,是不应该被修改的,如果继承的子类重写了基类的方法,那么,再从这个子类派生出子类的话,这个派生的子类接口已经破坏掉了统一的接口. 但有时候,我们需要一个子类能扩展基类的方法,但又不想破坏这个统一的接口,这时候,哥就来教你既能扩展功能,又能保证接口的统一性:) 首先做几个实验验证: 提供的源码如下: A类  B类  C类  (B类继承于A类,C类继承于B类) // // A.h // Super // // Copyrig

super-为什么子类重写父类方法之后还要调用父类同名方法

问题描述 为什么子类重写父类方法之后还要调用父类同名方法 为什么子类重写父类方法之后还要调用父类同名方法 比如public class A extends B { public void say ( ) { super.say ( ); } 为什么重写父类方法之后还要在方法体里面用super关键词调用父类的同名方法呢 解决方案 你可以不调用,这个你自定,不是必须 解决方案二: SubClasing用法--子类重写父类方法,父类直接调用实现方式子类调用父类方法子类调用父类方法 解决方案三: 我想到

为什么重写了父类接口的方法后,仍然报错?

问题描述 为什么重写了父类接口的方法后,仍然报错? The type Videosite must implement the inherited abstract method Subject.remove() 解决方案 你还有一个基类抽象类的抽象方法,Subject.remove(),没有实现,检查下. 解决方案二: 把子类定义为抽象类,在重写父类的方法

java-关于android子类重写父类方法,方法体里面的方法的问题

问题描述 关于android子类重写父类方法,方法体里面的方法的问题 android中子类重写父类Activity方法,在onCreate这个方法的方法体里面有个setContentView方法,这个方法是调用外部方法吗,为什么前面没加this关键词,不是说方法的方法体里面调用外部方法要加this关键词,加了没加有什么区别 解决方案 不是调用外部方法,这是调用父类Activity中的方法 解决方案二: 子类重写父类的方法应注意的问题java 子类重写父类的方法应注意的问题java 子类重写父类的

用类的继承关系(重写父类的方法)实现简易后台代码模板_实用技巧

Asp.net的优势就在于快速构建应用,而对于一些最基础数据的增删改以及分页事件或者样式的设定可以通过在父类中写上虚方法来供子类调用,如果子类需要在模板的基础上衍生变化或者索性不要父类的方法的话,则只需要重写父类的方法即可. 实验代码如下: 首先是模板类的抽象,继承自Page类: 复制代码 代码如下: public class Template : System.Web.UI.Page { protected override void OnLoad(EventArgs e) { base.On

子类继承父类实现父类的代理方法

子类继承父类实现父类的代理方法 父类提供虚函数(OC中称为代理方法),子类继承后实现虚函数来实现特定的功能. 父类方法: NumberCount.h 与 NumberCount.m // // NumberCount.h // YXMWeather // // Created by XianMingYou on 15/2/18. // Copyright (c) 2015年 XianMingYou. All rights reserved. // #import <Foundation/Foun

OC小实例关于init方法不小心的错误

正视遇到的每一个错误 在一个遥控器类操控小车玩具的小实例项目中,我采用组合的方式,将遥控器拥有小汽车对象(has a)关系,而不是继承(is a)关系. 想法:将创建小汽车的实例化过程写在遥控器的初始化方法中 Controller.m : 1 - (instancetype)initWith 2 { 3 self = [super init]; 4 if (self) { 5 NSLog(@"遥控器初始化创建了"); 6 _car = [[Car alloc] init]; 7 } 8