Ios 通过单击子视图中的按钮更改UIView显示
我在CreateAccountViewController中初始化了UIViewIos 通过单击子视图中的按钮更改UIView显示,ios,Ios,我在CreateAccountViewController中初始化了UIView import UIKit class CreateAccountViewController: UIViewController { @IBAction func btnAdd(sender: AnyObject) { let subview = NSBundle.mainBundle().loadNibNamed("Slide", owner: self, options: nil)?
import UIKit
class CreateAccountViewController: UIViewController {
@IBAction func btnAdd(sender: AnyObject) {
let subview = NSBundle.mainBundle().loadNibNamed("Slide", owner: self, options: nil)?.first as! Slide
self.addview.addSubview(subview)
}
@IBOutlet weak var addview: UIView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
当我点击UIView幻灯片中的btn按钮时,我想为这个UIView添加一个新的UUBiew
我实现如下并获得
1 addview错误=零
有人能帮我吗
import UIKit
class Slide: UIView {
@IBOutlet weak var txtTen: UILabel!
@IBOutlet weak var imageHinhAnh: UIImageView!
@IBAction func btn(sender: AnyObject) {
let subview = NSBundle.mainBundle().loadNibNamed("Test", owner: self, options: nil)?.first as! Test
let Storyboard=UIStoryboard(name: "Main", bundle: nil)
let scr=Storyboard.instantiateViewControllerWithIdentifier("CreateAccount") as! CreateAccountViewController
scr.addview.addSubview(subview)
}
@IBOutlet weak var txtNoiDung: UILabel!
}
我假设您已经为
幻灯片
和测试
创建了XIB文件。您可以使用协议委托方法来实现代码。创建幻灯片视图的协议方法,通过创建代理,您可以通过调用相同的代理协议方法访问视图控制器
class CreateAccountViewController: UIViewController, SlideDelegate {
@IBOutlet weak var addview: UIView!
// Create Global Variable to access in delegate method of SlideDelegate
var slideView: Slide?
@IBAction func btnAdd(sender: AnyObject) {
slideView = Bundle.main.loadNibNamed("Slide", owner: self, options: nil)![0] as? Slide
slideView?.delegate = self
self.addview.addSubview(slideView!)
}
func add(view: Test) {
if slideView != nil {
slideView?.addSubview(view)
}
}
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
创建如下协议
protocol SlideDelegate: class {
func add(view: Test)
}
class Slide: UIView {
@IBOutlet weak var txtTen: UILabel!
@IBOutlet weak var imageHinhAnh: UIImageView!
@IBOutlet weak var txtNoiDung: UILabel!
weak var delegate: SlideDelegate?
@IBAction func btn(sender: AnyObject) {
let subview = Bundle.main.loadNibNamed("Test", owner: self, options: nil)![0] as! Test
if let selfDelegate = delegate {
// Call delegate method which will notify your view controller to add sub view
selfDelegate.add(view: subview)
}
}
}