2017-12-01 9 views
1

푸시보기 컨트롤러 용 투명 탐색 모음처럼 Apple Music을 구현하려고했습니다.iOS 11 UINavigationBar 푸시 된 ViewController의 투명성

navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default) 
navigationController?.navigationBar.shadowImage = UIImage() 

그러나 점은 루트 만 컨트롤러, 예를 들어, 작동한다는 것입니다 :이 장소를 말하는 인터넷 솔루션의 많은 아래 코드의 viewDidLoad에 있습니다 항목 목록이있는 UITableViewController. 항목을 탭하여 세부 정보를 열면 투명 탐색 모음이 표시되지만 표시 후에는 단색 (반투명하지 않음)이됩니다. barTintColor를 설정해도 도움이되지 않습니다.

내가 뭘 잘못하고 있니? 또는 iOS 11의 알려진 문제입니까? 전에 작동 했었습니다 ...

답변

1

투명 탐색 모음이 iOS 11에서 눌려진 viewcontroller 용으로 작동하지 않고 대신 반투명 @screenshot없이 검은 색으로 표시됩니다.

enter image description here

첫째, 나는 마지막으로이 버그 보고서를 제출했다 :) 나는 다음과 같이 제시하고있는 UIViewController를 기각하는 것은이 문제를 해결하는 빠른 해결 방법을 찾을 : 내가 위에서 사용하고

if (self.navigationController!.viewControllers.count > 1) { 
    if #available(iOS 11.0, *) { 
     self.present(UIViewController(), animated: true, completion: { 
      self.dismiss(animated: false) 
     }) 
     self.scrollView.contentInsetAdjustmentBehavior = .never 
    } else { 
     self.automaticallyAdjustsScrollViewInsets = false 
    } 
    self.extendedLayoutIncludesOpaqueBars = false 
} 

을 코드는 viewWillAppear이고 내 UI는 스토리 보드 또는 xib없이 프로그래밍 방식으로 생성되므로 원활하게 작동합니다 :) 그리고 기대되는 결과를 얻을 수있어서 기쁩니다. @screenshot

enter image description here

+1

내 경우에는 작동하지 않는 것 같지만 시간 내 주셔서 감사합니다. 여전히 애플로부터의 수정이 있어야한다. Apple Music App에서이 동작을 어떻게 보존했는지 궁금합니다. 최신 sdk로 제작되었으므로 (큰 제목이있는 한) 동일한 문제에 직면했을 것입니다. –

+0

@SergeyPetrachkov 내 문제는 'parentViewController.navigationController.navigationBar.isTranslucent = false'입니다. 상위 viewcontroller에서 isTranslucent = false를 사용하지 않도록하십시오. – AamirR