Ich habe mehrere Navigations-Controller und ihre Root-View-Controller in meiner App. Ich möchte, dass jede Navigationsleiste Schaltflächen für soziale Medien enthält, die sich auf der rechten Seite der Leiste befinden. Für das gleiche habe ich diesen Code zu erhalten, die Tasten in 1 View-Controller verwendet:Ersetze wiederholten Code Swift 3
let fbImage = UIImage(named: "Facebook.png")!
let twitterImage = UIImage(named: "Twitter.png")!
let youtbImage = UIImage(named:"YouTube.png")!
let fbBtn: UIButton = UIButton(type: .custom)
fbBtn.setImage(fbImage, for: UIControlState.normal)
fbBtn.addTarget(self, action: #selector(HomeViewController.fbBtnPressed), for: UIControlEvents.touchUpInside)
fbBtn.frame = CGRect(x: 0, y: 0, width: 30, height: 30)
let fbBarBtn = UIBarButtonItem(customView: fbBtn)
let twitterBtn: UIButton = UIButton(type: .custom)
twitterBtn.setImage(twitterImage, for: UIControlState.normal)
twitterBtn.addTarget(self, action: #selector(HomeViewController.twitterBtnPressed), for: UIControlEvents.touchUpInside)
twitterBtn.frame = CGRect(x: 0, y: 0, width: 30, height: 30)
let twitterBarBtn = UIBarButtonItem(customView: twitterBtn)
let youtbBtn: UIButton = UIButton(type: .custom)
youtbBtn.setImage(youtbImage, for: UIControlState.normal)
youtbBtn.addTarget(self, action: #selector(HomeViewController.youtubeBtnPressed), for: UIControlEvents.touchUpInside)
youtbBtn.frame = CGRect(x: 0, y: 0, width: 30, height: 30)
let youtbBarBtn = UIBarButtonItem(customView: youtbBtn)
self.navigationItem.setRightBarButtonItems([youtbBarBtn, twitterBarBtn, fbBarBtn], animated: false)
Jetzt habe ich die gleichen Tasten auf allen Navigationsleisten will. Ich kann diesen Code und die entsprechenden Zielmethoden einfach in viewDidLoad()
jedes View-Controllers kopieren, aber zu viel Code wird wiederholt. Wie kann man diese Situation vermeiden?
Ich benutze Swift 3. Ich bin neu in iOS. Jede Hilfe wird geschätzt!
Sie könnten eine gemeinsame "Eltern" von Ihrem UIViewController gesetzt, wie „CommonViewController ", fügen Sie diesen Code ein und jeder Ihrer ViewController erbt von CommonViewController. – Larme