viewDidLoad 和 ViewDidAppear 未被调用
viewDidLoad and ViewDidAppear not being called
我有一个 UIViewController
是从 xib 文件创建的。
我是这样初始化的:
_sharedSingleton = [[SlipChangesViewController alloc] init];
[[NSBundle mainBundle] loadNibNamed:@"SlipChangesViewController" owner:_sharedSingleton options:nil];
我将 UIViewController
的视图添加到另一个 UIViewController 的子视图中:
[self.view addSubview:slipChangesVC.view];
现在奇怪的是,视图成功添加到子视图,但是由于某些原因viewDidLoad
和vieWillAppear
都没有被调用。但是,它成功调用了创建共享单例的方法和 init
方法。
我已经仔细检查以确保:
UIViews
或 UIViewControllers
的 - None 为零
- xib 的出口已正确链接
- 我打电话给
[super viewDidLoad]
和 [super viewWillAppear]
我检查了 Whosebug 上的各种线程并尝试了那里的建议但没有成功。例如。调用 [slipChangesVC view]
有谁知道为什么这两个方法不会被调用?
这不是添加子视图控制器的正确方法。通过这种方式,视图所有者获得更改。视图与其视图控制器分离,视图控制器停止接收 viewDidLoad 和其他视图方法。
如果你想让它工作,请查看已经回答的问题:
add UIViewController in subview
您正在现有视图之上添加 SlipChangesViewController 视图。在这种情况下,viewDidLoad 和 viewWillAppear 从未调用过。您需要为此添加一个 ViewController
试试这个
- (void)addChildViewC:(UIViewController *)childViewC
{
[self addChildViewController:childViewC];
childViewC.view.frame = self.view.bounds;
[self.view addSubview:childViewC.view];
[childViewC didMoveToParentViewController:self];
}
我永远不会让视图控制器成为单例。这不是单身人士。它被创造、毁灭、再创造、再毁灭。
我认为 viewDidLoad 在视图控制器的生命周期中只被调用 一次。所以让你成为单身人士可能会导致各种各样的问题。
我有一个 UIViewController
是从 xib 文件创建的。
我是这样初始化的:
_sharedSingleton = [[SlipChangesViewController alloc] init];
[[NSBundle mainBundle] loadNibNamed:@"SlipChangesViewController" owner:_sharedSingleton options:nil];
我将 UIViewController
的视图添加到另一个 UIViewController 的子视图中:
[self.view addSubview:slipChangesVC.view];
现在奇怪的是,视图成功添加到子视图,但是由于某些原因viewDidLoad
和vieWillAppear
都没有被调用。但是,它成功调用了创建共享单例的方法和 init
方法。
我已经仔细检查以确保:
- None 为零
- xib 的出口已正确链接
- 我打电话给
[super viewDidLoad]
和[super viewWillAppear]
UIViews
或 UIViewControllers
的 我检查了 Whosebug 上的各种线程并尝试了那里的建议但没有成功。例如。调用 [slipChangesVC view]
有谁知道为什么这两个方法不会被调用?
这不是添加子视图控制器的正确方法。通过这种方式,视图所有者获得更改。视图与其视图控制器分离,视图控制器停止接收 viewDidLoad 和其他视图方法。
如果你想让它工作,请查看已经回答的问题: add UIViewController in subview
您正在现有视图之上添加 SlipChangesViewController 视图。在这种情况下,viewDidLoad 和 viewWillAppear 从未调用过。您需要为此添加一个 ViewController
试试这个
- (void)addChildViewC:(UIViewController *)childViewC
{
[self addChildViewController:childViewC];
childViewC.view.frame = self.view.bounds;
[self.view addSubview:childViewC.view];
[childViewC didMoveToParentViewController:self];
}
我永远不会让视图控制器成为单例。这不是单身人士。它被创造、毁灭、再创造、再毁灭。
我认为 viewDidLoad 在视图控制器的生命周期中只被调用 一次。所以让你成为单身人士可能会导致各种各样的问题。