2015-11-20 47 views
0

我目前正在用Swift测试一下。 我想要做的是,制作一个带有tableView的ViewController,并通过objc.But显示它,当我添加init我的Swift类,并希望在我的objc viewcontroller中添加视图作为子视图时,我的单元格隐藏一旦我触摸桌面。在Objc中使用TableView的Swift ViewController使单元格隐藏

这是我的银行代码: 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]; 
} 

回答

0

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

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

希望这个作品

+0

似乎工作。但是为什么:D? – TdoubleG

+0

@TdoubleG在将子视图添加到视图层次结构之前,您的容器视图控制器必须将子视图控制器与其自身相关联。这允许iOS将事件正确地路由到子视图控制器以及这些控制器管理的视图 –

相关问题