iOS 앱을 8에서 XCode9로 이전 중입니다. 무엇이 원인인지 모르지만 Swift 3.2/Xcode 9가 잘못 작동하는 것으로 보입니다.상태 표시 줄의 가시성이 iOS에서 통일되지 않았습니다
그래서이 응용 프로그램은 모든보기 컨트롤러에 상태 표시 줄을 가지고 있으므로 마이그레이션을 마친 후 홈보기 만 표시되기 시작했습니다. 탭 버튼으로보기를 변경하면 다음 스크린 샷처럼 비게됩니다.
View controller-based status bar appearance
NO
하고
Hide Status Bar
내가
setNeedsStatusBarAppearanceUpdate()
및 해당 매개 변수하지만 여전히 작동하지 않는 추가
OFF
입니다.
여기에 "다른보기"의의 ViewController의 코드는
import UIKit
class InfoViewController: UITableViewController {
private var threads: [Info] = []
private var loading: Bool = false
private var hasNext: Bool = true
private var selectedThread: Info?
private var noInfoView: UIView?
internal var shouldRefresh: Bool = true
private var pagingIndicatorView: UIActivityIndicatorView!
private var timer: Timer?
private var poolingInterval: TimeInterval = 60 * 3
private var shouldClearThread: Bool = false
private var nextViewController: InfoDetailViewController?
let RequireCheckStatusForMessagesNotificationKey = "RequireCheckStatusForMessagesNotificationKey"
deinit {
NotificationCenter.default.removeObserver(self)
stopPooling()
}
override func viewDidLoad() {
super.viewDidLoad()
setNeedsStatusBarAppearanceUpdate()
tableView.contentInset.bottom = 40
pagingIndicatorView = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.gray)
pagingIndicatorView.frame = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: 50)
pagingIndicatorView.hidesWhenStopped = true
NotificationCenter.default.addObserver(self, selector: #selector(InfoViewController.requireCheckInfosForMessagesNotificationHandler(notif:)), name: NSNotification.Name(rawValue: RequireCheckStatusForMessagesNotificationKey), object: nil)
}
var statusBarStyle : UIStatusBarStyle = .lightContent
override var preferredStatusBarStyle: UIStatusBarStyle {
get {
return statusBarStyle
}
}
var statusBarStatus : Bool = false
override var prefersStatusBarHidden: Bool {
get {
return statusBarStatus
}
}
"하지만 Swift 3.2/Xcode 9가 잘못 작동하는 것처럼 보입니다."아니요. _You_ 뭔가 잘못하고 있습니다. 하지만 당신이하고있는 일을 우리에게 말하지 않고, 그것이 무엇인지를 누가 압니까? 도움이 필요하시면 앞으로 더 많은 도움을 받아야합니다. – matt
@matt 죄송하지만 상태 표시 줄에 대한 코드는 작성되지 않았습니다 ... 필요한 정보를 알려주실 수 있습니까? – kela
"스크래치 아웃"영역과 관련된 * 특정 * 문제를 이해하는 것은 매우 어렵습니다 ('코드 덤프'및 설명과 함께 Swift가 아닌 'NO/YES'문구와 함께). 그래서 이것을 시도해 봅시다 .... (1) "Swift 3.2/Xcode 9"와 ** Swift 3.1 및 Xcode 8 사이에서 정확히 ** 다른 점이 더 나은 스크린 샷 또는 언어로 설명 할 수 있습니까? (2) 문제를 실제로 복제 할 수있을 정도로 코드를 축소 할 수 있습니까? 분명한 점은 @matt가 이미 말했듯이 * fault *는 ** Swift 3.2 또는 Xcode 9가 아니라는 것입니다. 그렇다면 다른 사람들은 몇 달 동안 불평 할 것입니다. – dfd