UIBarbutton 'Save' UIActivity Indicator 在导航栏上停止后不再出现
UIBarbutton 'Save' not appearing again after UIActivity Indicator stops on navigation Bar
我的导航栏上有一个 Save
(系统项)作为 BarButtonItem
当用户单击此 Save
按钮时,我在导航栏上显示 UIActivityIndicatorView
并且我想在特定条件下再次出现此 Barbutton(Save)。首先,我认为问题是我在 customView 上添加了一个指示器,因此我不需要隐藏 barbutton.It 在我启动指示器后自动隐藏自身。但现在不知道如何再次显示保存按钮。或者如何从 customView
中删除指标
我就是这样做的
@IBOutlet weak var saveButtonOutlet: UIBarButtonItem!
var activityIndicatorView:UIActivityIndicatorView!
func showActivityIndicator() {
activityIndicatorView = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.White)
activityIndicatorView.frame = CGRectMake(0, 0, 14, 14)
activityIndicatorView.color = UIColor().blueColorIOS()
activityIndicatorView.startAnimating()
let barButtonItem = UIBarButtonItem(customView: activityIndicatorView)
self.navigationItem.rightBarButtonItem = barButtonItem
}
@IBAction func saveButtonClicked(sender: UIBarButtonItem) {
showActivityIndicator()
ServerRequest.postToServer(url, params: params){
result, error in
if let result = result {
let code = result["code"] as? Int
print(result)
if (code==200){
dispatch_after(DISPATCH_TIME_NOW, dispatch_get_main_queue(), { ()->() in
self.activityIndicatorView.hidden = true
self.activityIndicatorView.hidesWhenStopped = true
//here want to show again "saveButtonOutlet"
})
}
}
}
}
}
我认为您需要做的就是将 self.navigationItem.rightBarButtonItem
重置为 saveButtonOutlet。
现在为我工作。
因此,一种方法是再次创建“保存”按钮,并再次设置 rightBarButtonItem
:
...
self.activityIndicatorView.hidden = true
self.activityIndicatorView.hidesWhenStopped = true
let barButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Save, target: self, action: "saveButtonClicked:")
self.navigationItem.rightBarButtonItem = barButtonItem
而且我还将 self.activityIndicatorView.hidden = true
替换为 self.activityIndicatorView.stopAnimating()
以正确使用 hidesWhenStopped
属性.
我的导航栏上有一个 Save
(系统项)作为 BarButtonItem
当用户单击此 Save
按钮时,我在导航栏上显示 UIActivityIndicatorView
并且我想在特定条件下再次出现此 Barbutton(Save)。首先,我认为问题是我在 customView 上添加了一个指示器,因此我不需要隐藏 barbutton.It 在我启动指示器后自动隐藏自身。但现在不知道如何再次显示保存按钮。或者如何从 customView
我就是这样做的
@IBOutlet weak var saveButtonOutlet: UIBarButtonItem!
var activityIndicatorView:UIActivityIndicatorView!
func showActivityIndicator() {
activityIndicatorView = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.White)
activityIndicatorView.frame = CGRectMake(0, 0, 14, 14)
activityIndicatorView.color = UIColor().blueColorIOS()
activityIndicatorView.startAnimating()
let barButtonItem = UIBarButtonItem(customView: activityIndicatorView)
self.navigationItem.rightBarButtonItem = barButtonItem
}
@IBAction func saveButtonClicked(sender: UIBarButtonItem) {
showActivityIndicator()
ServerRequest.postToServer(url, params: params){
result, error in
if let result = result {
let code = result["code"] as? Int
print(result)
if (code==200){
dispatch_after(DISPATCH_TIME_NOW, dispatch_get_main_queue(), { ()->() in
self.activityIndicatorView.hidden = true
self.activityIndicatorView.hidesWhenStopped = true
//here want to show again "saveButtonOutlet"
})
}
}
}
}
}
我认为您需要做的就是将 self.navigationItem.rightBarButtonItem
重置为 saveButtonOutlet。
现在为我工作。
因此,一种方法是再次创建“保存”按钮,并再次设置 rightBarButtonItem
:
...
self.activityIndicatorView.hidden = true
self.activityIndicatorView.hidesWhenStopped = true
let barButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Save, target: self, action: "saveButtonClicked:")
self.navigationItem.rightBarButtonItem = barButtonItem
而且我还将 self.activityIndicatorView.hidden = true
替换为 self.activityIndicatorView.stopAnimating()
以正确使用 hidesWhenStopped
属性.