在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
首先建立一个swift项目,把storyboard的内容删掉,加入一个Navigation Controller。然后设置storyboard相应界面的class,在Navigation Controller界面设置View Controller的is initial View Controller,这里使用的自己定义列表内容。所以要新建一个继承UITableViewCell的类,然后设置storyboard中Table View的Prototype Cells的class,对于点击item进入详情界面,使用TableView 中的prepareForSegue方法。 JieTableViewController.swift // // JieTableViewController.swift // JieTableView // // Created by jiezhang on 14-10-5. // Copyright (c) 2014年 jiezhang. All rights reserved. // import UIKit class JieTableViewController: UITableViewController { var listVideos : NSMutableArray! override func viewDidLoad() { super.viewDidLoad() var bundle = NSBundle.mainBundle() let plistPath : String! = bundle.pathForResource("videos", ofType: "plist") listVideos = NSMutableArray(contentsOfFile: plistPath) // Uncomment the following line to preserve selection between presentations // self.clearsSelectionOnViewWillAppear = false // Uncomment the following line to display an Edit button in the navigation bar for this view controller. //以下这段话是设置左边编辑。右边加入item self.navigationItem.leftBarButtonItem = self.editButtonItem() let addButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Add, target: self, action: "insertNewObject:") self.navigationItem.rightBarButtonItem = addButton } func insertNewObject(sender: AnyObject) { var item : NSDictionary = NSDictionary(objects:["http://c.hiphotos.baidu.com/video/pic/item/f703738da977391224eade15fb198618377ae2f2.jpg","新增数据", NSDate.date().description] , forKeys: ["video_img","video_title","video_subTitle"]) listVideos.insertObject(item, atIndex: 0) let indexPath = NSIndexPath(forRow: 0, inSection: 0) self.tableView.insertRowsAtIndexPaths([indexPath], withRowAnimation: .Automatic) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } // MARK: - Table view data source //返回节的个数 override func numberOfSectionsInTableView(tableView: UITableView) -> Int { // #warning Potentially incomplete method implementation. // Return the number of sections. return 1 } //返回某个节中的行数 override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { // #warning Incomplete method implementation. // Return the number of rows in the section. return listVideos.count } //为表视图单元格提供数据,该方法是必须实现的方法 override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cellIdentifier : String = "videoItem" let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as JieTableViewCell var row = indexPath.row var rowDict : NSDictionary = listVideos.objectAtIndex(row) as NSDictionary let url : String = rowDict.objectForKey("video_img") as String let dataImg : NSData = NSData(contentsOfURL: NSURL(string : url)) cell.JieVideoImg.image = UIImage(data: dataImg) cell.JieVideoTitle.text = rowDict.objectForKey("video_title") as? JieTableViewCell.swift // // JieTableViewCell.swift // JieTableView // // Created by jiezhang on 14-10-5. // Copyright (c) 2014年 jiezhang. All rights reserved. // import UIKit class JieTableViewCell: UITableViewCell { @IBOutlet weak var JieVideoImg: UIImageView! @IBOutlet weak var JieVideoTitle: UILabel! @IBOutlet weak var JieVideoSubTitle: UILabel! override func awakeFromNib() { super.awakeFromNib() // Initialization code } override func setSelected(selected: Bool, animated: Bool) { super.setSelected(selected, animated: animated) } }JieDetailViewController.swift // // JieDetailViewController.swift // JieTableView // // Created by jiezhang on 14-10-5. // Copyright (c) 2014年 jiezhang. All rights reserved. // import UIKit class JieDetailViewController: UIViewController { @IBOutlet var big_video_img: UIImageView! //接受传进来的值 var detailItem: NSDictionary? func configureView() { if let detail : NSDictionary = self.detailItem { self.title = detail.objectForKey("video_title") as? String let url : String = detail.objectForKey("video_img") as String let dataImg : NSData = NSData(contentsOfURL: NSURL(string : url)) self.big_video_img.image = UIImage(data: dataImg) } } override func viewDidLoad() { super.viewDidLoad() configureView() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } // MARK: - Navigation override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) { } } 源代码地址:https://github.com/jwzhangjie/JieTableView |
请发表评论