Ich mache eine Klasse zum Teilen. Diese Klasse wird in meinem Projekt viele Male verwendet. Also habe ich dort viele Methoden mit einem Parameter definiert, der refrence UIViewcontroller angibt, auf dem ich so etwas wie SLComposeViewController
darstellen möchte. Ich möchte nur eine Sache fragen, dass es normal ist, einen UIVIewcontroller als Parameter oder zu übergeben, es wird nicht empfohlen, UIVIewController als Parameter zu übergeben.Pass Viewcontroller als Parameter
// ViewController Class
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func shareFacebook(sender: UIButton) {
let sharePanelObj = SharePanel()
sharePanelObj.facebookShare(self)
}
@IBAction func shareTwitter(sender: UIButton) {
}
}
// Reusable Base Class
class SharePanel: NSObject {
func facebookShare (refrenceViewController:UIViewController) ->() {
if SLComposeViewController.isAvailableForServiceType(SLServiceTypeFacebook) {
let fbShare:SLComposeViewController = SLComposeViewController(forServiceType: SLServiceTypeFacebook)
refrenceViewController.presentViewController(fbShare, animated: true, completion: nil)
} else {
let alert = UIAlertController(title: "Accounts", message: "Please login to a Facebook account to share.", preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil))
refrenceViewController.presentViewController(alert, animated: true, completion: nil)
}
}
}
Zeigen Sie den Code, der erklärt, was Sie tun und warum Sie es weitergeben. Ist es ein Controller, der sich selbst übergibt, damit etwas von ihm präsentiert werden kann? – Wain
Möchten Sie eine Basisklasse für eine Anwendung erstellen, die für den Aufruf derselben Methode in einem anderen Controller nützlich sein kann. so wie das? –