我正在创建一个应用程序,在其中实现 FB 登录。所以我在 ViewController.m 文件的 ViewDidLoad 中编写了 FBLogin 按钮代码。
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
FBSDKLoginButton *loginButton = [[FBSDKLoginButton alloc] init];
loginButton.center = self.view.center;
[self.view addSubview:loginButton];
}
但是当我运行这段代码时。 fb 按钮出现在我的应用程序的所有页面中,这意味着我的 viewController.m ViewDidLoad 方法每次都会调用。为什么? 我过去 4 小时一直在寻找解决方案,但尚未得到任何结果。 请帮帮我。
最佳答案
正如你所说,你的 View Controller 继承自这个 View Controller ,因此每个调用[super viewDidLoad]
的 View Controller 都会执行这个方法。 (解决方案不是删除 super
调用)。
您可以:而不是创建此 ViewController 和所有其他 View Controller 继承自此 View Controller :
- 创建一个
CommonViewController
,它实现 View Controller 之间的所有通用内容 - 创建一个
FacebookLoginViewController
,它也继承自CommonViewController
。
因此,您的继承树将如下所示:
CommonViewController
/ \
/ \
/ \
FacebookLoginVC OtherViewControllers
而不是:
ViewController (which is equivalent to FacebookViewController)
|
|
|
OtherViewControllers
关于ios - 为什么我的ViewDidLoad每次都会加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30118585/