将故事板出口传递给基本控制器 class
Pass storyboard outlet to base controller class
我有一个基地class:
class BaseViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, UITableViewDataSourcePrefetching {
var posts = [Post]()
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return posts.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(withIdentifier: "PostTableViewCell", for: indexPath) as? PostTableViewCell else {
fatalError("The dequeued cell is not an instance of PostTableViewCell.")
}
let post = posts[indexPath.row]
cell.parentViewController = self
cell.initialize(post: post)
return cell
}
}
我用作子class:
class FeedViewController: BaseViewController {
@IBOutlet weak var tableView: UITableView!
// Other stuff
}
我使用基础 class 来处理所有 table 视图函数(我在我的应用程序的许多部分中重复使用)。
在我的故事板中,我为 FeedViewController
设置了一个控制器设计,带有 table 视图。但是,我不确定如何将当前连接到 FeedViewController
的故事板出口传递到我的基本控制器,以便基本控制器处理所有 table 视图逻辑。我该怎么做?
如果您不直接在代码中实例化 BaseViewController
,那么只需在基础 class 中移动出口声明(情节提要将自动处理)
class BaseViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, UITableViewDataSourcePrefetching {
@IBOutlet weak var tableView: UITableView!
// Other stuff
}
class FeedViewController: BaseViewController {
// Other stuff
}
我有一个基地class:
class BaseViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, UITableViewDataSourcePrefetching {
var posts = [Post]()
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return posts.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(withIdentifier: "PostTableViewCell", for: indexPath) as? PostTableViewCell else {
fatalError("The dequeued cell is not an instance of PostTableViewCell.")
}
let post = posts[indexPath.row]
cell.parentViewController = self
cell.initialize(post: post)
return cell
}
}
我用作子class:
class FeedViewController: BaseViewController {
@IBOutlet weak var tableView: UITableView!
// Other stuff
}
我使用基础 class 来处理所有 table 视图函数(我在我的应用程序的许多部分中重复使用)。
在我的故事板中,我为 FeedViewController
设置了一个控制器设计,带有 table 视图。但是,我不确定如何将当前连接到 FeedViewController
的故事板出口传递到我的基本控制器,以便基本控制器处理所有 table 视图逻辑。我该怎么做?
如果您不直接在代码中实例化 BaseViewController
,那么只需在基础 class 中移动出口声明(情节提要将自动处理)
class BaseViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, UITableViewDataSourcePrefetching {
@IBOutlet weak var tableView: UITableView!
// Other stuff
}
class FeedViewController: BaseViewController {
// Other stuff
}