在 iOS 上,一个 ViewController 的 viewDidLoad 中,子视图的数量是 0?哪种方法可以显示填充的数字?
Posted
技术标签:
【中文标题】在 iOS 上,一个 ViewController 的 viewDidLoad 中,子视图的数量是 0?哪种方法可以显示填充的数字?【英文标题】:On iOS, in a ViewController's viewDidLoad, the number of subviews is 0? Which method can show the populated number? 【发布时间】:2012-05-22 12:24:20 【问题描述】:使用 Xcode 4.3.2,在 ViewController 中启动一个全新的 Single View App
- (void)viewDidLoad
// ...
UIWindow *window = [[[UIApplication sharedApplication] delegate] window];
NSLog(@"How many subviews %i", window.subviews.count);
计数实际上是0
...如果我在点击事件处理程序中打印出数字,那么我确实会看到1
,这是应用程序的主视图。所以我想知道viewDidLoad
、[subviews count]
是0
是如何出现的,并且是否有像viewDidLoad
这样的init 或begin 方法,它已经可以打印1
(无需在点击事件处理程序中打印它)。
【问题讨论】:
【参考方案1】:尝试 NSLog 中的子视图计数 - (void)viewDidAppear:(BOOL)animated
viewDidLoad 在控制器的视图加载到内存后调用。 viewDidAppear: 通知视图控制器其视图已添加到视图层次结构中。
【讨论】:
所以viewDidLoad
不是说主视图已经加载(或添加)?
在viewDidLoad:
,它已被加载到内存中。然后框架调用viewWillAppear:
让你知道它将把它放到窗口中,并在完成后调用viewDidAppear:
。以上是关于在 iOS 上,一个 ViewController 的 viewDidLoad 中,子视图的数量是 0?哪种方法可以显示填充的数字?的主要内容,如果未能解决你的问题,请参考以下文章
iOS 导航问题:推送 ViewController 后,会导致导航栏显示上一个 ViewController 的导航项
在 iOS 上,一个 ViewController 的 viewDidLoad 中,子视图的数量是 0?哪种方法可以显示填充的数字?
如何在 iOS 中的 ViewController 上加载 .xib UIviews
uiView 在 iOS10 的 ViewController 中未对齐,但不是 iOS11