Repeat same statement in all viewDidLoad functions possible extension file
up vote
0
down vote
favorite
I want this same statement repeated in all of my projects' viewDidLoad
functions. I know I can just manually type it in but I am trying to find a way to increase my code speed. I don't know if I can use a extension file in this.
override func viewDidLoad() {
super.viewDidLoad()
let myswitchBoolValuefromFirstVc : Bool = UserDefaults.standard.bool(forKey: "mySwitch")// this is how you retrieve the bool value
// to see the value, just print those with conditions. you can use those for your things.
if myswitchBoolValuefromFirstVc == true
print("true")
rosaryCounterLabel.isHidden = false
else
print("false")
rosaryCounterLabel.isHidden = true
ios swift function loops extension-methods
add a comment |
up vote
0
down vote
favorite
I want this same statement repeated in all of my projects' viewDidLoad
functions. I know I can just manually type it in but I am trying to find a way to increase my code speed. I don't know if I can use a extension file in this.
override func viewDidLoad() {
super.viewDidLoad()
let myswitchBoolValuefromFirstVc : Bool = UserDefaults.standard.bool(forKey: "mySwitch")// this is how you retrieve the bool value
// to see the value, just print those with conditions. you can use those for your things.
if myswitchBoolValuefromFirstVc == true
print("true")
rosaryCounterLabel.isHidden = false
else
print("false")
rosaryCounterLabel.isHidden = true
ios swift function loops extension-methods
Extensions can't override existing functionality (or more to the point they shouldn't) - Instead, you would either need to provide an extension which contained a function with the code in it, that you'd need to call fromviewDidLoad
of all you view controllers you wanted to use it, but then you have an issue over instance variables, OR, you could create a custom class which extends fromUIViewController
and that all your own view controllers would inherit from
– MadProgrammer
Nov 11 at 2:05
@MadProgrammer could you show me a specific example of what you are talking about? Thanks.
– Jason Stone
Nov 11 at 4:26
Inheritance in Swift
– MadProgrammer
Nov 11 at 20:23
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I want this same statement repeated in all of my projects' viewDidLoad
functions. I know I can just manually type it in but I am trying to find a way to increase my code speed. I don't know if I can use a extension file in this.
override func viewDidLoad() {
super.viewDidLoad()
let myswitchBoolValuefromFirstVc : Bool = UserDefaults.standard.bool(forKey: "mySwitch")// this is how you retrieve the bool value
// to see the value, just print those with conditions. you can use those for your things.
if myswitchBoolValuefromFirstVc == true
print("true")
rosaryCounterLabel.isHidden = false
else
print("false")
rosaryCounterLabel.isHidden = true
ios swift function loops extension-methods
I want this same statement repeated in all of my projects' viewDidLoad
functions. I know I can just manually type it in but I am trying to find a way to increase my code speed. I don't know if I can use a extension file in this.
override func viewDidLoad() {
super.viewDidLoad()
let myswitchBoolValuefromFirstVc : Bool = UserDefaults.standard.bool(forKey: "mySwitch")// this is how you retrieve the bool value
// to see the value, just print those with conditions. you can use those for your things.
if myswitchBoolValuefromFirstVc == true
print("true")
rosaryCounterLabel.isHidden = false
else
print("false")
rosaryCounterLabel.isHidden = true
ios swift function loops extension-methods
ios swift function loops extension-methods
edited Nov 11 at 4:21
rmaddy
235k27306373
235k27306373
asked Nov 11 at 1:52
Jason Stone
751312
751312
Extensions can't override existing functionality (or more to the point they shouldn't) - Instead, you would either need to provide an extension which contained a function with the code in it, that you'd need to call fromviewDidLoad
of all you view controllers you wanted to use it, but then you have an issue over instance variables, OR, you could create a custom class which extends fromUIViewController
and that all your own view controllers would inherit from
– MadProgrammer
Nov 11 at 2:05
@MadProgrammer could you show me a specific example of what you are talking about? Thanks.
– Jason Stone
Nov 11 at 4:26
Inheritance in Swift
– MadProgrammer
Nov 11 at 20:23
add a comment |
Extensions can't override existing functionality (or more to the point they shouldn't) - Instead, you would either need to provide an extension which contained a function with the code in it, that you'd need to call fromviewDidLoad
of all you view controllers you wanted to use it, but then you have an issue over instance variables, OR, you could create a custom class which extends fromUIViewController
and that all your own view controllers would inherit from
– MadProgrammer
Nov 11 at 2:05
@MadProgrammer could you show me a specific example of what you are talking about? Thanks.
– Jason Stone
Nov 11 at 4:26
Inheritance in Swift
– MadProgrammer
Nov 11 at 20:23
Extensions can't override existing functionality (or more to the point they shouldn't) - Instead, you would either need to provide an extension which contained a function with the code in it, that you'd need to call from
viewDidLoad
of all you view controllers you wanted to use it, but then you have an issue over instance variables, OR, you could create a custom class which extends from UIViewController
and that all your own view controllers would inherit from– MadProgrammer
Nov 11 at 2:05
Extensions can't override existing functionality (or more to the point they shouldn't) - Instead, you would either need to provide an extension which contained a function with the code in it, that you'd need to call from
viewDidLoad
of all you view controllers you wanted to use it, but then you have an issue over instance variables, OR, you could create a custom class which extends from UIViewController
and that all your own view controllers would inherit from– MadProgrammer
Nov 11 at 2:05
@MadProgrammer could you show me a specific example of what you are talking about? Thanks.
– Jason Stone
Nov 11 at 4:26
@MadProgrammer could you show me a specific example of what you are talking about? Thanks.
– Jason Stone
Nov 11 at 4:26
Inheritance in Swift
– MadProgrammer
Nov 11 at 20:23
Inheritance in Swift
– MadProgrammer
Nov 11 at 20:23
add a comment |
2 Answers
2
active
oldest
votes
up vote
0
down vote
If you are prepared to abuse the Objective-C runtime that UIViewController still uses, you can use method swizzling to do what you ask. https://medium.com/@abhimuralidharan/method-swizzling-in-ios-swift-1f38edaf984f
let aClass: AnyClass! = object_getClass(instance)
let originalMethod = class_getInstanceMethod(aClass, #selector(viewDidLoad))
let swizzledMethod = class_getInstanceMethod(aClass, #selector(newViewDidLoad))
if let originalMethod = originalMethod, let swizzledMethod = swizzledMethod
method_exchangeImplementations(originalMethod, swizzledMethod)
but I wouldn't recommend it. You trade between discoverability and repetition. In the case where you control all the code, it is going to be easier to maintain using a solution like subclassing that will still require some changes in every view controller.
add a comment |
up vote
0
down vote
Create a "master" view controller.
class MasterViewController: UIViewController
override func viewDidLoad()
super.viewDidLoad()
//"Global" code here
And then inherit in all your other view controllers
class ViewController: MasterViewController
override func viewDidLoad()
super.viewDidLoad()
//controller specific code here
add a comment |
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
If you are prepared to abuse the Objective-C runtime that UIViewController still uses, you can use method swizzling to do what you ask. https://medium.com/@abhimuralidharan/method-swizzling-in-ios-swift-1f38edaf984f
let aClass: AnyClass! = object_getClass(instance)
let originalMethod = class_getInstanceMethod(aClass, #selector(viewDidLoad))
let swizzledMethod = class_getInstanceMethod(aClass, #selector(newViewDidLoad))
if let originalMethod = originalMethod, let swizzledMethod = swizzledMethod
method_exchangeImplementations(originalMethod, swizzledMethod)
but I wouldn't recommend it. You trade between discoverability and repetition. In the case where you control all the code, it is going to be easier to maintain using a solution like subclassing that will still require some changes in every view controller.
add a comment |
up vote
0
down vote
If you are prepared to abuse the Objective-C runtime that UIViewController still uses, you can use method swizzling to do what you ask. https://medium.com/@abhimuralidharan/method-swizzling-in-ios-swift-1f38edaf984f
let aClass: AnyClass! = object_getClass(instance)
let originalMethod = class_getInstanceMethod(aClass, #selector(viewDidLoad))
let swizzledMethod = class_getInstanceMethod(aClass, #selector(newViewDidLoad))
if let originalMethod = originalMethod, let swizzledMethod = swizzledMethod
method_exchangeImplementations(originalMethod, swizzledMethod)
but I wouldn't recommend it. You trade between discoverability and repetition. In the case where you control all the code, it is going to be easier to maintain using a solution like subclassing that will still require some changes in every view controller.
add a comment |
up vote
0
down vote
up vote
0
down vote
If you are prepared to abuse the Objective-C runtime that UIViewController still uses, you can use method swizzling to do what you ask. https://medium.com/@abhimuralidharan/method-swizzling-in-ios-swift-1f38edaf984f
let aClass: AnyClass! = object_getClass(instance)
let originalMethod = class_getInstanceMethod(aClass, #selector(viewDidLoad))
let swizzledMethod = class_getInstanceMethod(aClass, #selector(newViewDidLoad))
if let originalMethod = originalMethod, let swizzledMethod = swizzledMethod
method_exchangeImplementations(originalMethod, swizzledMethod)
but I wouldn't recommend it. You trade between discoverability and repetition. In the case where you control all the code, it is going to be easier to maintain using a solution like subclassing that will still require some changes in every view controller.
If you are prepared to abuse the Objective-C runtime that UIViewController still uses, you can use method swizzling to do what you ask. https://medium.com/@abhimuralidharan/method-swizzling-in-ios-swift-1f38edaf984f
let aClass: AnyClass! = object_getClass(instance)
let originalMethod = class_getInstanceMethod(aClass, #selector(viewDidLoad))
let swizzledMethod = class_getInstanceMethod(aClass, #selector(newViewDidLoad))
if let originalMethod = originalMethod, let swizzledMethod = swizzledMethod
method_exchangeImplementations(originalMethod, swizzledMethod)
but I wouldn't recommend it. You trade between discoverability and repetition. In the case where you control all the code, it is going to be easier to maintain using a solution like subclassing that will still require some changes in every view controller.
answered Nov 11 at 7:25
Tristan Burnside
2,1561920
2,1561920
add a comment |
add a comment |
up vote
0
down vote
Create a "master" view controller.
class MasterViewController: UIViewController
override func viewDidLoad()
super.viewDidLoad()
//"Global" code here
And then inherit in all your other view controllers
class ViewController: MasterViewController
override func viewDidLoad()
super.viewDidLoad()
//controller specific code here
add a comment |
up vote
0
down vote
Create a "master" view controller.
class MasterViewController: UIViewController
override func viewDidLoad()
super.viewDidLoad()
//"Global" code here
And then inherit in all your other view controllers
class ViewController: MasterViewController
override func viewDidLoad()
super.viewDidLoad()
//controller specific code here
add a comment |
up vote
0
down vote
up vote
0
down vote
Create a "master" view controller.
class MasterViewController: UIViewController
override func viewDidLoad()
super.viewDidLoad()
//"Global" code here
And then inherit in all your other view controllers
class ViewController: MasterViewController
override func viewDidLoad()
super.viewDidLoad()
//controller specific code here
Create a "master" view controller.
class MasterViewController: UIViewController
override func viewDidLoad()
super.viewDidLoad()
//"Global" code here
And then inherit in all your other view controllers
class ViewController: MasterViewController
override func viewDidLoad()
super.viewDidLoad()
//controller specific code here
answered Nov 11 at 10:07
Eager Logic
1,59411630
1,59411630
add a comment |
add a comment |
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53245175%2frepeat-same-statement-in-all-viewdidload-functions-possible-extension-file%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Extensions can't override existing functionality (or more to the point they shouldn't) - Instead, you would either need to provide an extension which contained a function with the code in it, that you'd need to call from
viewDidLoad
of all you view controllers you wanted to use it, but then you have an issue over instance variables, OR, you could create a custom class which extends fromUIViewController
and that all your own view controllers would inherit from– MadProgrammer
Nov 11 at 2:05
@MadProgrammer could you show me a specific example of what you are talking about? Thanks.
– Jason Stone
Nov 11 at 4:26
Inheritance in Swift
– MadProgrammer
Nov 11 at 20:23