在Objc中使用TableView的Swift ViewController使单元格隐藏



我目前正在测试Swift。我想做的是,制作一个包含tableView的ViewController,并通过objc显示它。但是,当我添加init my Swift类并希望将视图添加为objc视图控制器中的子视图时,一旦我触摸了表视图,我的单元格就会被隐藏。

这是我的Swift代码:主菜单ViewController.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;
    }
}

主菜单TableViewCell.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];
}

尝试将其添加为子视图控制器

[childController willMoveToParentViewController:rootViewController];
[rootViewController addChildViewController:childController];
[rootViewController.view addSubview:childController.view];
[childController didMoveToParentViewController:rootViewController];

希望这能起作用

最新更新