我正在创建一个应用程序,我在其中实现了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个小时,但还没有得到任何结果。 请帮帮我。
答案 0 :(得分:2)
正如您所说,您的视图控制器继承自此视图控制器,因此调用[super viewDidLoad]
的每个视图控制器都将执行此方法。 (解决方案不是删除super
调用。)
您可以:
,而不是创建此ViewController,并且每个其他视图控制器都可以继承此视图控制器CommonViewController
,实现视图控制器之间通用的所有内容FacebookLoginViewController
,它也继承自CommonViewController
。因此,您的继承树看起来像:
CommonViewController
/ \
/ \
/ \
FacebookLoginVC OtherViewControllers
而不是:
ViewController (which is equivalent to FacebookViewController)
|
|
|
OtherViewControllers
答案 1 :(得分:0)
以下是我的问题的答案
当我使用ViewController继承所有其他ViewControllers和主ViewController类时,我犯了一个小错误。我用
修改了我的代码 @interface ViewController : UIViewController
@end
而不是
@interface ViewController : ViewController
@end
和所有其他类一样
@interface homeViewController : UIViewController
@interface contestViewController : UIViewController
@interface menuViewController : UIViewController
等
这简直解决了我的问题。谢谢你的帮助。