2017-03-18 6 views
2

나는 Android 개발자이며 최근에 Swift를 배우기 시작했습니다. 나는 UIStoryboardUITableView에 맞춤 클래스를 할당 할 수없는 문제에 직면 해있다. 클래스 이름을 작성하고 Enter 키를 누르면 iMac에서 경고음을냅니다. 나는이 문제 양식 시간을 고수했다. 누군가 나를 안내 할 수 있습니까? 여기 enter image description hereTableViewController에 사용자 정의 클래스를 할당하는 방법

import Foundation 
import UIKit 
class MemeTableViewController: UIViewController,UITableViewDataSource,UITableViewDelegate { 

    var memes : [Meme]! 

    override func viewWillAppear(_ animated: Bool) { 
     super.viewWillAppear(animated) 

     let appDelegate = UIApplication.shared.delegate as! AppDelegate 
     memes = appDelegate.meme 
    } 

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     return memes.count 
    } 

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     let cell = tableView.dequeueReusableCell(withIdentifier: "tablecell")! 
     let meme = memes[(indexPath as NSIndexPath).row] 
     cell.imageView?.image = meme.memeImage 
     cell.textLabel?.text = "\(meme.topText)....\(meme.bottomText)" 
     return cell 
    } 

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
     let controller = self.storyboard?.instantiateViewController(withIdentifier: "MemeDetailViewer") as! MemeDetailViewer 
     let meme = memes[(indexPath as NSIndexPath).row] 
     controller.memeImage = meme.memeImage 
    } 
} 

덕분에 클래스를입니다! 당신이 다음 UIStoryboard에서 클래스 이름을 지정하기 전에

+0

클래스도 UITableViewController의 하위 클래스 여야합니다! 당신은 UITableViewController에 할당하고 있습니다. –

+0

그러면'''UITableViewController'''를 사용하면'''UITableViewDataSource'''와'''UITableViewDelegate'''가 필요하지 않습니다? –

+0

예, 물론 필요하지 않습니다. 대리자 기능을 직접 사용할 수 있습니다. –

답변

2

은, 당신의 클래스는 여기처럼 해당 컨트롤러의 하위 클래스해야한다 : UITableViewController 그리고 당신이 할당하는 것은 UIViewController의 하위 클래스입니다.