Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.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 Swift-帮助从Objective C语法转换_Ios_Objective C_Swift_Uinavigationcontroller_Uinavigationbar - Fatal编程技术网

Ios Swift-帮助从Objective C语法转换

Ios Swift-帮助从Objective C语法转换,ios,objective-c,swift,uinavigationcontroller,uinavigationbar,Ios,Objective C,Swift,Uinavigationcontroller,Uinavigationbar,我正在尝试用自定义图像替换UINavigationControllerBackBarButtonItem,我希望没有像现在这样的后退图标: 我从另一个stack post拍摄这张照片,但我的照片也发生了类似的事情 此处列出了解决方案: 问题是我无法将此代码转换为Swift。如果有人能帮助我,我将不胜感激。提前谢谢 使用以下代码: //Hide Default Back Button First self.navigationItem.setHidesBackButton(true, a

我正在尝试用自定义图像替换
UINavigationController
BackBarButtonItem
,我希望没有像现在这样的后退图标:

我从另一个stack post拍摄这张照片,但我的照片也发生了类似的事情

此处列出了解决方案:

问题是我无法将此代码转换为Swift。如果有人能帮助我,我将不胜感激。提前谢谢

使用以下代码:

//Hide Default Back Button First
    self.navigationItem.setHidesBackButton(true, animated:true);

//Your code to show back button
    let backButton = UIButton()
    backButton.setImage(UIImage(named: "imagename"), forState: .Normal)
    backButton.frame = CGRectMake(0, 0, 30, 30)
    backButton.addTarget(self, action: Selector("action"), forControlEvents: .TouchUpInside)

    let rightBarButton = UIBarButtonItem()
    rightBarButton.customView = backButton
   self.navigationItem.leftBarButtonItem = rightBarButton

//Back Button Action

func action()
    {
        self.navigationController?.popViewControllerAnimated(true)
    }
使用以下代码:

//Hide Default Back Button First
    self.navigationItem.setHidesBackButton(true, animated:true);

//Your code to show back button
    let backButton = UIButton()
    backButton.setImage(UIImage(named: "imagename"), forState: .Normal)
    backButton.frame = CGRectMake(0, 0, 30, 30)
    backButton.addTarget(self, action: Selector("action"), forControlEvents: .TouchUpInside)

    let rightBarButton = UIBarButtonItem()
    rightBarButton.customView = backButton
   self.navigationItem.leftBarButtonItem = rightBarButton

//Back Button Action

func action()
    {
        self.navigationController?.popViewControllerAnimated(true)
    }

在swift 3中使用以下代码:

class BaseViewController: UIViewController  {

    override func viewDidLoad() {
        super.viewDidLoad()

        self.setBackButton()
    }

    func setBackButton() {
        let backImage = UIImage(named:"back_icon") as UIImage!
        let backButton = UIBarButtonItem(image: backImage, style: UIBarButtonItemStyle.plain, target: self, action: #selector(BaseViewController.viewWillDisappearC) )

        self.navigationItem.leftBarButtonItem = backButton
    }

    func viewWillDisappearC() {
        _ = self.navigationController?.popViewController(animated: true)
    }
}

在swift 3中使用以下代码:

class BaseViewController: UIViewController  {

    override func viewDidLoad() {
        super.viewDidLoad()

        self.setBackButton()
    }

    func setBackButton() {
        let backImage = UIImage(named:"back_icon") as UIImage!
        let backButton = UIBarButtonItem(image: backImage, style: UIBarButtonItemStyle.plain, target: self, action: #selector(BaseViewController.viewWillDisappearC) )

        self.navigationItem.leftBarButtonItem = backButton
    }

    func viewWillDisappearC() {
        _ = self.navigationController?.popViewController(animated: true)
    }
}

在swift 2.2(xocde 7.3)中使用以下代码:

类BaseViewController:UIViewController{

override func viewDidLoad() {
    super.viewDidLoad()

    self.setBackButton()
}

func setBackButton() {
    let backImage = UIImage(named:"back_icon") as UIImage!
    let backButton = UIBarButtonItem(image: backImage, style:UIBarButtonItemStyle.Plain, target: self, action: #selector(BaseViewController.viewWillDisappearC) )
    self.navigationItem.leftBarButtonItem = backButton
}

func viewWillDisappearC() {
    self.navigationController?.popViewControllerAnimated(true)
}

}在swift 2.2(xocde 7.3)中使用以下代码:

类BaseViewController:UIViewController{

override func viewDidLoad() {
    super.viewDidLoad()

    self.setBackButton()
}

func setBackButton() {
    let backImage = UIImage(named:"back_icon") as UIImage!
    let backButton = UIBarButtonItem(image: backImage, style:UIBarButtonItemStyle.Plain, target: self, action: #selector(BaseViewController.viewWillDisappearC) )
    self.navigationItem.leftBarButtonItem = backButton
}

func viewWillDisappearC() {
    self.navigationController?.popViewControllerAnimated(true)
}

}

获取回刷功能:
viewDidLoad
中的第一个设置委托:

self.navigationController!.interactivePopGestureRecognizer.delegate = self
然后在按下时禁用手势:

override func pushViewController(_ viewController: UIViewController, animated: Bool) {
    super.pushViewController(viewController, animated: animated)
    self.interactivePopGestureRecognizer.isEnabled = false
}
并在
视图中启用:

self.navigationController!.interactivePopGestureRecognizer.isEnabled = true

要获取回扫功能,请执行以下操作:
viewDidLoad
中的第一个设置委托:

self.navigationController!.interactivePopGestureRecognizer.delegate = self
然后在按下时禁用手势:

override func pushViewController(_ viewController: UIViewController, animated: Bool) {
    super.pushViewController(viewController, animated: animated)
    self.interactivePopGestureRecognizer.isEnabled = false
}
并在
视图中启用:

self.navigationController!.interactivePopGestureRecognizer.isEnabled = true

你可以得到或感谢@Saavaj。根据第二个链接,他们在全球范围内这样做。我必须在全球范围内这样做吗?你可以得到或感谢@Saavaj。根据第二个链接,他们在全球范围内这样做。我必须全局执行吗?这不包含回扫功能,然后这不包含回扫功能,然后这不包含回扫功能,然后这不包含回扫功能,然后这不包含回扫功能