SWIFT - 来自UITableviewController

时间:2015-05-16 19:50:29

标签: ios xcode swift xib

我有UITableviewController,我尝试将菜单叠加。

为此,我按照以下步骤进行操作:

在主控制器中,我创建了一个UIview,CustomView的子类:

    class MyTableViewController: UITableViewController{

    ..........
    // Placeholder view for custom view
    var overlayView = CustomView(frame: CGRect(x: 12, y: 100, width: 300, height: 100))

    .........

// function that must be call from CustomView

    func testPrint(){

       println("testPrint")

    }

      override func viewDidLoad() {
            super.viewDidLoad()

    // add view on overlay to the UITableviwController
      self.view.addSubview(overlayView)

    ......... }

    ..... }

我添加了CustomView.xib个文件

我添加了CustomView.swift个文件

 import UIKit

class CustomView: UIView {

    var view: UIView!

    @IBAction func buttonPressed(sender: AnyObject) {
        println("test")

    }

    override init(frame: CGRect) {

        super.init(frame: frame)

        xibSetup()
    }

    required init(coder aDecoder: NSCoder) {

        super.init(coder: aDecoder)

        xibSetup()
    }

    func xibSetup() {
        view = loadViewFromNib()

        view.frame = bounds

        view.autoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight

        addSubview(view)
    }

    func loadViewFromNib() -> UIView {
        let bundle = NSBundle(forClass: self.dynamicType)
        let nib = UINib(nibName: "CustomView", bundle: bundle)

        // Assumes UIView is top level and only object in CustomView.xib file
        let view = nib.instantiateWithOwner(self, options: nil)[0] as! UIView
        return view
    }

}

我必须继续吗?

我必须从XIB文件中调用主控制器“MyTableViewController”中声明的testPrint()函数,并将其作为文件所有者分配给CustomView.swift

我必须将MyTableViewController指定为XIB的文件所有者,并将XIB文件中的按钮直接关联到MyTableViewController

这样我收到错误:

2015-05-16 21:15:02.243 ETA [15578:2618934] Interface Builder文件中的未知类_TtC3ETA4menu。 2015-05-16 21:15:06.935 ETA [15578:2618934] + [ETA。 MyTableViewController pppp:]:无法识别的选择器发送到类0x1b40f8 2015-05-16 21:15:06.937 ETA [15578:2618934] ***由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:'+ [ETA。 MyTableViewController myButtonMainController:]:无法识别的选择器发送到类0x1b40f8'

感谢Alberto

0 个答案:

没有答案