私は、すべての戻るボタンのテキストをデフォルトでは「戻る」に設定する方法を探しています。から。Swift:デフォルトのボタンテキストとして「戻る」を「戻る」ボタンに設定します
私は複数のビューとセグを持っており、すべてのビューコントローラでPrepareForSegueを使用するよりもきれいな方法があることを願っています。
これは、ユーザーに言語を変更できるようにするため、ローカリゼーションも簡素化されます。
誰もが提案や解決策をお持ちですか?
私は、すべての戻るボタンのテキストをデフォルトでは「戻る」に設定する方法を探しています。から。Swift:デフォルトのボタンテキストとして「戻る」を「戻る」ボタンに設定します
私は複数のビューとセグを持っており、すべてのビューコントローラでPrepareForSegueを使用するよりもきれいな方法があることを願っています。
これは、ユーザーに言語を変更できるようにするため、ローカリゼーションも簡素化されます。
誰もが提案や解決策をお持ちですか?
(あなたはこのために別の空のファイルを作成し、UIKitのをインポートすることを確認することができます)のUIViewControllerに拡張を作成します - :コントローラクラスで
import UIKit
extension UIViewController {
func leftBarButton(subView:UIView,labelView:UILabel,imageView:UIImageView) -> UIBarButtonItem{
let leftBarButton = UIBarButtonItem(customView: subView)
subView.frame = CGRect(x: 0, y: 0, width: 100, height: 40)
subView.addSubview(imageView)
subView.addSubview(labelView)
imageView.leftAnchor.constraint(equalTo: subView.leftAnchor,constant: -8).isActive = true
imageView.topAnchor.constraint(equalTo: subView.topAnchor, constant: 2).isActive = true
imageView.heightAnchor.constraint(equalToConstant: 30).isActive = true
imageView.widthAnchor.constraint(equalToConstant: 30).isActive = true
labelView.leftAnchor.constraint(equalTo: imageView.rightAnchor,constant: 8).isActive = true
labelView.rightAnchor.constraint(equalTo: subView.rightAnchor).isActive = true
labelView.topAnchor.constraint(equalTo: subView.topAnchor).isActive = true
labelView.heightAnchor.constraint(equalToConstant: 40).isActive = true
return leftBarButton
}
func anotherMethod(){
_ = self.navigationController?.popViewController(animated: true)
}
}
- :
var views : UIView = {
let subView = UIView()
//subView.backgroundColor = UIColor.green
return subView
}()
var imageView : UIImageView = {
var view = UIImageView()
view.translatesAutoresizingMaskIntoConstraints = false
view.image = UIImage(named: "Back")
return view
}()
var labelView: UILabel = {
var labeView = UILabel()
labeView.translatesAutoresizingMaskIntoConstraints = false
labeView.text = "Back"
labeView.textColor = UIColor.blue
return labeView
}()
// ViewDidLoad
override func viewDidLoad() {
super.viewDidLoad()
//self.navigationBar.tintColor = UIColor.green
self.navigationItem.leftBarButtonItem = leftBarButton(subView: views, labelView: labelView, imageView: imageView)
}
これは動作しますが、テキストの左側にある矢印を削除します。 – Gjeruldsen
@Gjeruldsenそれに応じて修正する必要があるため、UIビューをサブビューとしてバーボタン内に追加し、ボタンイメージを後ろに追加してビュー内にラベルを付ける必要があります。 –
@Gjeruldsenカスタムバックボタンとイメージを追加する方法の回答を更新しました。今すぐ確認してください。 –
を全く外観がないので、あなたが必要とするもののための代理人、あなたは継承ルートに行くことができ、このような基本クラスを作成することができます:
class BaseClass: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.backBarButtonItem = UIBarButtonItem(title: "Back", style: .plain, target: nil, action: nil)
}
}
だけがそれを継承:
class YourViewController: BaseClass { ... }
あなたはこの質問を見てみる必要がありますhttps://stackoverflow.com/questions/38049389/default-back-button-text-and-font-setting – trungduc