2017-02-27 3 views
1

UIBarButtonItem tintColorに問題があります。FIBDK共有ダイアログを使用中にUIBarButtonItemの色合いを変更するにはどうすればいいですか?

私はアプリ

ではなく、この画面の色をデフォルトに使用するためのAppDelegateに[[UIBarButtonItem appearance] setTintColor:[UIColor whiteColor]];を設定しました。それは白だからボタンを見ることができないようです! 共有ポップアップ画面を表示するにはFBSDKShareDialog showFromViewControllerを使用しました。この画面でtintColorを編集するにはどうしたらいいですか?

説明の編集more。

提案として、この画面のみで動作します。実際に私の問題は、この画面を青色に変更した後です。電子メールの送信画面に影響します。したがって、電子メール画面では、ナビゲーションバーが青色であるため、ボタンも表示されないようです。それはトリッキーです。私はUIActicityControllerを使用して電子メール画面を表示しました。

enter image description here

+0

変更コード ([UINavigationBar conformsToProtocol:@protocol(UIAppearanceContainer)])であれば{ [UINavigationBar外観] .tintColor = [UIColor whiteColor]。 } – iOS

+0

@ Jigar [[UIBarButtonItem appearance] setTintColor:[UIColor whiteColor]]; 'を設定する必要があります。ボタンはデフォルトで青色に設定され、ナビゲーションバーの色も青色になります。このボタンのようには表示されません – Oniikal3

答えて

0

Objective Cの

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
self.window.tintColor = [UIColor whiteColor]; 
return YES; 
} 

OR

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
if([UINavigationBar conformsToProtocol:@protocol(UIAppearanceContainer)]) { 
    [UINavigationBar appearance].tintColor = [UIColor whiteColor]; 
} 

return YES; 
} 

// ****************** *************************************************** *********

スウィフト

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
self.window?.tintColor = UIColor.white 
return true 
} 

または

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
if UINavigationBar is UIAppearanceContainer { 
    UINavigationBar.appearance().tintColor = UIColor.white 
} 
return true 
} 
+0

申し訳ありませんDishant、あなたの提案はtintColorを変更することができますが、私は問題の詳細を説明しました。これはうまくいかない – Oniikal3

0

あなたはまだこれを考え出したていない場合は、何を行うことができますすることはFBSDKSharingために、デリゲートを使用しています。 appdelegateファイル内

- (IBAction)shareOnFacebook:(id)sender 
{ 
    FBSDKShareLinkContent *content = [[FBSDKShareLinkContent alloc] init]; 
    content.contentTitle = @"Content Title"; 
    content.contentURL = [NSURL URLWithString:@"https://example.com/url/to/your/app"]; 
    content.quote = @"Learn quick and simple ways for people to share content from your app or website to Facebook."; 

    // make the changes here; what you want to see in FB Dialog 
    [[UINavigationBar appearance] setBackgroundImage:[[UIImage alloc] init] forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault]; 

    FBSDKShareDialog *dialog = [[FBSDKShareDialog alloc] init]; 
    dialog.fromViewController = self; 
    dialog.shareContent = content; 
    dialog.mode = FBSDKShareDialogModeShareSheet; 
    dialog.delegate = self; 
    [dialog show]; 
} 

// And change it back in these delegate methods 
-(void)sharer:(id<FBSDKSharing>)sharer didCompleteWithResults:(NSDictionary *)results 
{ 
} 

-(void)sharerDidCancel:(id<FBSDKSharing>)sharer 
{ 
} 

-(void)sharer:(id<FBSDKSharing>)sharer didFailWithError:(NSError *)error 
{ 
} 
関連する問題