我有两节课:
//This is my custom class, where I would like to get access to 'MyTableView' class
import UIKit
class TestClass: NSObject {
//Instance variable 'myTableView'
var myTableView: MyTableView!
override init() {
super.init()
//Creat an instance!
myTableView = MyTableView()
}
func ReloadTableView() {
//Reload the current TableView
myTableView.MyTableView.reloadData()
}
//My functions...
}
//This is 'MyTableView' class which is connected to a TableViewController in storyboard. When I open the corresponding TableView in my App, the viewDidLoad function is called.
import UIKit
class MyTableView: UITableViewController {
@IBOutlet var MyTableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
//Functions to creat the current TableView with it's information...
}
我的问题:
为什么我无法访问' MyTableView'来自' TestClass'的课程我总是得到例外:
在解包可选值时意外发现nil
是否有可能获取有关活动视图的信息? 谢谢!
答案 0 :(得分:2)
您不应该使用以大写字母开头的变量名称,如下所示:
@IBOutlet var MyTableView:UITableView!
这是不好的做法,可能导致令人困惑的代码
您对MyTableView
类的实例化只是在其上调用默认构造函数,在这种情况下,它不会在该类中实例化MyTableView
属性。您必须使用以下内容从故事板中实例化它:
self.storyboard.instantiateViewControllerWithIdentifier("MyTableViewIdentifier")