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。根据第二个链接,他们在全球范围内这样做。我必须全局执行吗?这不包含回扫功能,然后这不包含回扫功能,然后这不包含回扫功能,然后这不包含回扫功能,然后这不包含回扫功能