2017-03-27 2 views
3
내가 UIActivityViewController, 를 사용하여 텍스트를 공유하고

을에서 선택에 다음과 같이 내 화면이 나타납니다 나열된 옵션에서 "메시지"를 선택에 대한 enter image description here내비게이션 바 & BarButtonItem 색상 변경은 UIActivityViewController

을 발표하지만이 내 AppDelegate에 할당 된 흰색 인 오른쪽 바 버튼에서 취소 버튼.
여기에서 문제는 NavigationBar 색상을 업데이트 할 수 없다는 것입니다.

다음과 것도 유용하지 않기 때문에 내가 시도

,

let activityVC = UIActivityViewController(activityItems: contents, applicationActivities: nil) 
    present(activityVC, animated: true) { 
     activityVC.navigationController?.navigationBar.backgroundColor = UIColor.green 
     activityVC.navigationController?.navigationBar.tintColor = UIColor.red 
     MYAppDelegate.customise() 
    } 

또는

let activityVC = UIActivityViewController(activityItems: contents, applicationActivities: nil) 
    present(activityVC, animated: true) { 
     UINavigationBar.appearance().barTintColor = UIColor.red 
     UINavigationBar.appearance().tintColor = UIColor.white 
     let navigationTextAttributes = [NSForegroundColorAttributeName : UIColor.white] 
     UINavigationBar.appearance().titleTextAttributes = navigationTextAttributes 
     UIBarButtonItem.appearance().setTitleTextAttributes(navigationTextAttributes, for: .normal) 
     UIBarButtonItem.appearance().tintColor = UIColor.white 
    } 


어떻게이 문제를 해결하려면?

답변

0

당신이하려는 것은 Apple에서 개발 한 iOS 메시지 앱의 share extension [1] (그림에 표시된 내용)을 통해 일부 콘텐츠를 공유하는 것입니다. 그래서 기본적으로 애플은 그것의 색깔을 제어합니다.

여기 내 이전 대답의 링크입니다 : https://stackoverflow.com/a/42517419/5220959 아직 시도하지는 않았지만 호스트 응용 프로그램의 UIAppearance settings을 변경하여 작동하는지 확인할 수 있다고 생각합니다. 그런 식으로 모든 내비게이션 막대의 색이 호스트 응용 프로그램에서 변경됩니다.

[1] https://developer.apple.com/library/content/documentation/General/Conceptual/ExtensibilityPG/Share.html#