I created a group of user interface elements using Interface Builder and connected them to my ViewController using IBOutlets.
However, when I try to iterate through self.view.subviews
in my ViewController's viewDidLoad
method, I find that the subviews array is empty.
ViewController.xib
:
UIView | - UILabel - UIButton -
ViewController.m
:
Debugger output in BREAK_POINT
:
(lldb) po self.view <UIView: 0x7fa7897e2140; frame = (0 0; 600 600); autoresize = W+H; layer = <CALayer: 0x7fa7897e2210>> (lldb) po self.view.subviews <__NSArrayI 0x7fa789713500>( ) (lldb) po [self.view.subviews count]; nil (lldb) po self.button1 <UIButton: 0x7fa78955ea70; frame = (-23 -15; 46 30); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x7fa7897663d0>>
Any ideas why self.views.subviews is empty when explicitly UIButtons etc. have been initialized and correctly connected to IBOutlets?
Edit 1: I renamed "MainView.xib" to "ViewController.xib" and removed the loadView
implementation in my ViewController.m
, and I still see the behavior of self.view.subviews
.
Vidur source share