Ios 在导航栏中隐藏并显示后退按钮
我有两种方法:Ios 在导航栏中隐藏并显示后退按钮,ios,swift,back-button,navigationitem,Ios,Swift,Back Button,Navigationitem,我有两种方法: func showSpinner() { let spinner = UIActivityIndicatorView(activityIndicatorStyle: .White) spinner.startAnimating() self.navigationItem.leftBarButtonItem = UIBarButtonItem(customView: spinner) self.navigationItem.hidesBackBut
func showSpinner()
{
let spinner = UIActivityIndicatorView(activityIndicatorStyle: .White)
spinner.startAnimating()
self.navigationItem.leftBarButtonItem = UIBarButtonItem(customView: spinner)
self.navigationItem.hidesBackButton = true
}
func hideSpinner()
{
self.navigationItem.leftBarButtonItem = nil
self.navigationItem.hidesBackButton = false
}
在viewDidLoad
中,我调用showSpinner
,然后在加载数据后,我调用hideSpinner
。但是backButton经常在hideSpinner
上跳跃。如何修复它
卸下微调器后,可以使用“延迟”来显示“后退”按钮。如0.2秒或根据要求
func hideSpinner()
{
self.navigationItem.leftBarButtonItem = nil
dispatch_after(1, dispatch_get_main_queue()) { () -> Void in
self.navigationItem.hidesBackButton = false
};
}
卸下微调器后,可以使用“延迟”显示“后退”按钮。如0.2秒或根据要求
func hideSpinner()
{
self.navigationItem.leftBarButtonItem = nil
dispatch_after(1, dispatch_get_main_queue()) { () -> Void in
self.navigationItem.hidesBackButton = false
};
}
您可以使用此方法
-(void)setHidesBackButton:(BOOL)hidesBackButton animated:(BOOL)animated
使用AnimationReady显示后退按钮尝试了相同的结果。您是否尝试过使用0.2之类的延迟或按照如下要求显示后退按钮-func hideSpinner(){self.navigationItem.leftBarButtonItem=nil dispatch_after(1,dispatch_get_main_queue()){()->Void in self.navigationItem.hidesBackButton=false};}
谢谢你,你可以写is作为答案,但我不明白为什么会发生这种情况?Bcos你正在尝试同时执行两个任务删除微调器和显示后退按钮。你可以使用此方法-(Void)setHidesBackButton:(BOOL)hidesBackButton动画:(BOOL)动画
使用AnimationReady显示后退按钮尝试了相同的结果。您是否尝试过使用0.2之类的延迟或按照如下要求显示后退按钮-func hideSpinner(){self.navigationItem.leftBarButtonItem=nil dispatch_after(1,dispatch_get_main_queue()){()->Void in self.navigationItem.hidesBackButton=false};}
谢谢你,你可以写is作为答案,但我不明白为什么会发生这种情况?Bcos你正在尝试同时执行两个任务删除微调器和显示后退按钮。