Without using Interface builder or xib files, what is the correct way to instantiate two classes which inherit from UIView such that they can switch between themselves using UIButtons located on the views themselves?
I think this involves setting up a UIViewController from the app delegate and adding two instances of my classes which implement UIView into the controller (perhaps from inside the controller?)
I’m also not sure how to raise events from UIButtons on the custom UIViews to switch the views. I suspect I would need to add a method to the view controller but I’m not sure how to get a reference to the view controller from inside the scope of my UIView.
Also, I’m wondering that,if the use of a UIViewController is necessary, should the switch method could be in the scope of the main app delegate?
Some code examples would be great!
If you want to get it done in code, here is an example I just drummed up using lazy loaded UI elements. I’m only making one button here and swapping it between whichever view is active. It’s slightly awkward, but it reduces the amount of code necessary to demonstrate this.
I’ve created two UIViews to represent your custom classes, one with a blue background and one with a red. The button swaps between the two. If you have a unique button already in each of your custom views, you just need to either expose those buttons as properties of your UIView subclasses so your view controller can access them, or add the view controller as a target for the button’s action from within your UIView’s loading code.
I’ve tested this code in my simulator and it seems to work fine, but you really should try to understand what’s going on here so you can implement it yourself.
ToggleViewController.h:
ToggleViewController.m: