【发布时间】:2017-11-16 04:05:26
【问题描述】:
我正在将 iOS 应用程序从 8 迁移到 XCode9。我不确定是什么原因造成的,但似乎 Swift 3.2/Xcode 9 表现不佳。
所以我正在开发的这个应用程序在所有视图控制器上都有状态栏,但在迁移后它开始只显示主视图。通过选项卡按钮更改视图它变为空白,如下面的屏幕截图。
View controller-based status bar appearance 是 NO 和 Hide Status Bar 是 OFF
我添加了setNeedsStatusBarAppearanceUpdate() 及其参数,但仍然无法正常工作。
这里是“另一个视图”的 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 表现不佳" 不。你做错了什么。但是你没有告诉我们你在做什么,所以谁知道它是什么?如果你需要帮助,你必须更加乐于助人。
-
@matt 很抱歉,但在代码中没有写任何关于状态栏的内容...你能告诉我你需要什么信息吗?
-
很难理解“划出”区域的特定问题(以及
NO/YES措辞 - 这不是 Swift - 以及“代码转储”和说明)。所以让我们试试这个......(1)你能用更好的截图或措辞描述“Swift 3.2/Xcode 9”和...... Swift 3.1 和Xcode 8? (2) 你能把你的代码精简到我们可以实际复制问题的程度吗?显而易见的一点 - @matt 已经说过 - fault 是 not Swift 3.2 或 Xcode 9。如果是这样,其他人会抱怨几个月。 -
状态栏存在。你的背景是白色的,所以你看不到它。试试黑色背景。