サブビューのプロパティにviewcontrollerにどのようにアクセスできますか。サブビューからViewControllerへのアクセスプロパティSwift
例:@IBOutletが弱い場合は、var loginBtn:UIButton!どのように私はそれを私のView Controllerにアクセスできますか?私はそれを行う方法の多くのこととチュートリアルを行いましたが、それでも動作させることはできませんでした。
また、xibをロードする最も良い方法は何ですか?チュートリアルで見た方法はたくさんありますが、プロダクションアプリでどのように行うかについても知りたいと思います。
protocol UserLoginDelegate {
func userDidLogin(status: Bool, message: String)
}
@IBDesignable class LoginWidget: UIView {
var loginDelegate: UserLoginDelegate?
var loginView: UIView!
var nibName: String = "LoginWidget"
let defaults = NSUserDefaults.standardUserDefaults()
@IBOutlet weak var loginButton: UIButton!
@IBOutlet weak var email: UITextField!
@IBOutlet weak var password: UITextField!
@IBOutlet weak var name: UITextField!
@IBAction func loginBtn(sender: AnyObject) {
// init
override init(frame: CGRect) {
super.init(frame: frame)
// set anything that uses the view or visible bounds
setup()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
// setup
setup()
}
func setup() {
loginView = loadViewFromNib()
loginView.frame = bounds
loginView.autoresizingMask = [UIViewAutoresizing.FlexibleWidth, UIViewAutoresizing.FlexibleHeight]
addSubview(loginView)
}
func loadViewFromNib() -> UIView {
let bundle = NSBundle(forClass: self.dynamicType)
let nib = UINib(nibName: nibName, bundle: bundle)
let view = nib.instantiateWithOwner(self, options: nil)[0] as! UIView
return view
}
}
コントローラ
class AuthenticationViewController: UIViewController, UserLoginDelegate {
override func viewDidLoad() {
super.viewDidLoad()
loginWidget = LoginWidget(frame: CGRect(x: 0, y: 171, width: 375, height: 247))
authenticationSegment.setEnabled(true, forSegmentAtIndex: 0)
loginWidget.loginDelegate = self
self.view.addSubview(loginWidget)
// Do any additional setup after loading the view.
}
}
1つの関連性のない質問が多すぎます。 – matt