В настоящее время я тестирую Swift. То, что я хотел сделать, это сделать ViewController с табличным представлением в нем и отобразить это через objc.But, когда я добавляю init мой класс Swift и хочу добавить представление в качестве подзадачи в моем объекторе view objc, мои ячейки скрываются как только я коснулся таблицы.Swift ViewController с TableView в Objc делает скрытую ячейку
Это мой Swift код: MainMenuViewController.swift
import UIKit
@objc
class MainMenuViewController: UIViewController, UITableViewDelegate, UITableViewDataSource{
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
tableView.registerNib(UINib(nibName: "MainMenuTableViewCell", bundle: nil), forCellReuseIdentifier: "Cell");
tableView.delegate = self;
tableView.dataSource = self;
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
//MARK : tableview
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1;
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1;
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! MainMenuTableViewCell;
//cell.icon.image = UIImage(named: "clock")
cell.menuTitle.text = "test"
return cell;
}
}
MainMenuTableViewCell.swift
class MainMenuTableViewCell: UITableViewCell
{
//MARK : properties
@IBOutlet weak var menuTitle: UILabel!
@IBOutlet weak var icon: UIImageView!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
и это, как я добавить вид в ObjC: ViewController.m
- (IBAction)ShowMenu:(id)sender
{
MainMenuViewController *mainMenu = [[MainMenuViewController alloc] init];
[mainMenu.view setFrame:CGRectMake(0,self.navigationController.navigationBar.height, self.view.width-100, self.view.height-self.navigationController.navigationBar.height)];
[self.view addSubview:mainMenu.view];
}
Кажется, работает. Но почему: D? – TdoubleG
@TdoubleG Контроллер просмотра контейнера должен связать контроллер дочернего представления с собой, прежде чем добавить корневой вид ребенка в иерархию представлений. Это позволяет iOS правильно маршрутизировать события в контроллеры дочерних элементов и представления, которыми управляют эти контроллеры –