Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在导航栏中隐藏并显示后退按钮_Ios_Swift_Back Button_Navigationitem - Fatal编程技术网

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你正在尝试同时执行两个任务删除微调器和显示后退按钮。