在Objc中使用TableView的Swift ViewController使Cell隐藏起来

时间:2015-11-20 08:06:04

标签: objective-c swift uitableview

我目前正在使用Swift进行一些测试。 我想做的是,制作一个带有tableView的ViewController并通过objc.But显示这个,当我添加init我的Swift类并想在我的objc viewcontroller中添加视图作为子视图时,我的单元格被隐藏一次我触动了桌面视图。

这是我的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];
}

1 个答案:

答案 0 :(得分:0)

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

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

希望这有效