Repeat same statement in all viewDidLoad functions possible extension file
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 |
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 '18 at 2:05
@MadProgrammer could you show me a specific example of what you are talking about? Thanks.
– user7459574
Nov 11 '18 at 4:26
Inheritance in Swift
– MadProgrammer
Nov 11 '18 at 20:23
add a comment |
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 '18 at 4:21
rmaddy
240k27313377
240k27313377
asked Nov 11 '18 at 1:52
user7459574
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 '18 at 2:05
@MadProgrammer could you show me a specific example of what you are talking about? Thanks.
– user7459574
Nov 11 '18 at 4:26
Inheritance in Swift
– MadProgrammer
Nov 11 '18 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 '18 at 2:05
@MadProgrammer could you show me a specific example of what you are talking about? Thanks.
– user7459574
Nov 11 '18 at 4:26
Inheritance in Swift
– MadProgrammer
Nov 11 '18 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 '18 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 '18 at 2:05
@MadProgrammer could you show me a specific example of what you are talking about? Thanks.
– user7459574
Nov 11 '18 at 4:26
@MadProgrammer could you show me a specific example of what you are talking about? Thanks.
– user7459574
Nov 11 '18 at 4:26
Inheritance in Swift
– MadProgrammer
Nov 11 '18 at 20:23
Inheritance in Swift
– MadProgrammer
Nov 11 '18 at 20:23
add a comment |
2 Answers
2
active
oldest
votes
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 |
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 |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
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
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
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 |
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 |
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 '18 at 7:25
Tristan BurnsideTristan Burnside
2,1661921
2,1661921
add a comment |
add a comment |
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 |
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 |
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 '18 at 10:07
Eager LogicEager Logic
1,62411630
1,62411630
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
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 '18 at 2:05
@MadProgrammer could you show me a specific example of what you are talking about? Thanks.
– user7459574
Nov 11 '18 at 4:26
Inheritance in Swift
– MadProgrammer
Nov 11 '18 at 20:23