Как я могу изменить оттенок цвета UIBarButtonItem при использовании диалога общего доступа FBSDK
У меня проблема с UIBarButtonItem tintColor.
Я поставил [[UIBarButtonItem appearance] setTintColor:[UIColor whiteColor]];
в AppDelegate для использования цвета по умолчанию в приложении
Но на этом экране. Кажется, кнопка не видна, потому что она белая! я использовал FBSDKShareDialog showFromViewController
показать всплывающее окно поделиться. Как я могу редактировать tintColor для этого экрана?
Изменить для объяснения больше.
Как предложения это работает только для этого экрана. но на самом деле моя проблема после того, как я изменил этот экран на синий цвет. Это повлияет на экран отправки электронной почты. Так что на экране электронной почты, кажется, не вижу кнопки тоже, потому что моя панель навигации имеет синий цвет. Это обманщик. Я использовал UIActicityController для представления экрана электронной почты.
2 ответа
цель с
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window.tintColor = [UIColor whiteColor];
return YES;
}
ИЛИ ЖЕ
- (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
}
Если вы до сих пор не поняли этого, то вы можете использовать делегатов для FBSDKSharing
,
- (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
{
}