Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Facebook FBLoginView自定义loginView按钮互联网问题_Ios_Xcode_Facebook Login_Facebook Ios Sdk_Reachability - Fatal编程技术网

Ios Facebook FBLoginView自定义loginView按钮互联网问题

Ios Facebook FBLoginView自定义loginView按钮互联网问题,ios,xcode,facebook-login,facebook-ios-sdk,reachability,Ios,Xcode,Facebook Login,Facebook Ios Sdk,Reachability,大家好, I'm developing app,it having login with face book functionality.For this i have used Facebook iOS SDK 3.18.1 version. I have created custom FBLoginView with custom button.every thing work properly. I had one issue if there is no internet con

大家好,

    I'm developing app,it having login with face book functionality.For this i have used Facebook iOS SDK 3.18.1 version. I have created custom FBLoginView with custom button.every thing work properly. I had one issue if there is no internet connectivity i need to show alert like 'network requires' but when click on custom login button it directly move to safari browser with out checking network.I have written code for check network connectivity using rechablity.When i click on facebook custom login button it directly move to safari browser for facebook login.
有人能帮我解决这个问题吗

代码如下:

-(void)showFacebookLoginUI
{
    self.loginview =
    [[FBLoginView alloc] initWithReadPermissions:[NSArray arrayWithObjects:@"email",@"publish_actions",@"publish_stream",@"public_profile",@"user_about_me",@"user_hometown",@"user_location",nil]];


    if (IS_IPHONE_5) {
        self.loginview.frame = CGRectMake(80, 380, 200, 40);
    }else if(IS_IPAD){
        self.loginview.frame = CGRectMake(310, 636, 180, 100);
    }else{
       self.loginview.frame = CGRectMake(80, 330, 150, 40);
    }
    for (id obj in self.loginview.subviews)
    {
        if ([obj isKindOfClass:[UIButton class]])
        {
            UIButton * loginButton =  obj;

            UIImage *loginImage = [UIImage imageNamed:@"fbIcon.png"];
            [loginButton setBackgroundImage:loginImage forState:UIControlStateNormal];
             [loginButton setBackgroundImage:nil forState:UIControlStateSelected];
            [loginButton setBackgroundImage:nil forState:UIControlStateHighlighted];
            [loginButton addTarget:self action:@selector(fblogin:) forControlEvents:UIControlEventTouchUpInside];
        }
        if ([obj isKindOfClass:[UILabel class]])
        {
             UILabel *label =obj;
            [label removeFromSuperview];          
        }
    }

    [self.view addSubview:self.loginview];
}
-(void)fblogin:(id)sender
{

    if (![self.sharedObject CheckInternetConnectivity]) {

        [self.sharedObject showAlertWithMessage:kNetworkRequiresMessage];
    }
    else{
        self.loginview.delegate = self;
    }
}

在fblogin方法中,它直接导航到safari浏览器进行face book登录,而无需检查网络连接。

如下更改代码

        loginFacebook =
        [[FBLoginView alloc] initWithPublishPermissions:[NSArray arrayWithObjects:@"email",@"user_friends",nil] defaultAudience:FBSessionDefaultAudienceFriends];

        if (IS_IPHONE_5) {
        self.loginview.frame = CGRectMake(80, 380, 200, 40);
        }else if(IS_IPAD){
        self.loginview.frame = CGRectMake(310, 636, 180, 100);
        }else{
        self.loginview.frame = CGRectMake(80, 330, 150, 40);
        }

        for (id obj in loginFacebook.subviews)
        {
            if ([obj isKindOfClass:[UIButton class]])
            {
                UIButton * loginButton =  obj;

                UIImage *loginImage = [UIImage imageNamed:@"facebook_off_signin.png"];
                [loginButton setBackgroundImage:loginImage forState:UIControlStateNormal];
                [loginButton setBackgroundImage:nil forState:UIControlStateSelected];
                [loginButton setBackgroundImage:nil forState:UIControlStateHighlighted];

                //[loginButton sizeToFit];
            }
            if ([obj isKindOfClass:[UILabel class]])
            {
                UILabel * loginLabel =  obj;
                loginLabel.text =@""; //@"Log in to facebook";
                loginLabel.textAlignment = NSTextAlignmentCenter;
                loginLabel.frame =CGRectMake(123,149, 280, 55);// CGRectMake(0, 0, 271, 37);
            }
        }

        loginFacebook.delegate = self;
      [self.view addSubview:loginFacebook];
当你们点击Facebook的按钮时,你们不给按钮添加目标,那个么它的代理就被调用了

如果按钮图像未显示,则尝试删除[loginButton sizeToFit]的注释;
从代码中。它正在工作。

在Facebook按钮中,首先检查网络是否可用,如果互联网不可用,则显示警报,否则部分调用允许的ui方法Hi Karthik..感谢您的回复。您能在那里检查fblogin方法吗?我正在先检查网络连接,如果没有,我也会显示警报。但当点击登录按钮时,它会在选中InternetConnectivity后直接移动到safari浏览器进行facebook登录。这是我的问题吗?我希望你能理解