ios – 在Swift中的UIViewController中添加UITableView的问题

ios – 在Swift中的UIViewController中添加UITableView的问题,第1张

概述所以我试图建立一个单一的屏幕应用程序,我开始使用UIViewController.最重要的是,有一个UITextfield,一个按钮和一个UITableView. 本质上,应用程序的预期功能是让用户在UITextField中键入单词,点击按钮,并将其显示在UITableView上. 当按钮将UITextField条目附加到不同屏幕上的UITableViewController时,我从来没有遇到过这 所以我试图建立一个单一的屏幕应用程序,我开始使用UIVIEwController.最重要的是,有一个UITextfIEld,一个按钮和一个UItableVIEw.

本质上,应用程序的预期功能是让用户在UITextFIEld中键入单词,点击按钮,并将其显示在UItableVIEw上.

当按钮将UITextFIEld条目附加到不同屏幕上的UItableVIEwController时,我从来没有遇到过这样的问题,但由于某种原因我在UIVIEwController上嵌入了UItableVIEw时出现问题…在我的故事板上,我确实将UItableVIEw链接为UIVIEwController的委托和数据源,这应该不是问题.

有任何想法吗?我的代码发布在下面.

import UIKitvar groupList:[String] = []class ExistingGroups: UIVIEwController,UITextFIEldDelegate,UItableVIEwDelegate,UItableVIEwDataSource{@IBOutlet weak var addGroup: UITextFIEld!@IBAction func addGroupbutton(sender: AnyObject) {    self.vIEw.endEditing(true)    var error = ""    if addGroup.text == "" {        error = "Please enter a Group!"    } else {        groupList.append(addGroup.text)    }    if error != "" {        var alert = UIAlertController(Title:"Error In Form",message: error,preferredStyle: UIAlertControllerStyle.Alert)        alert.addAction(UIAlertAction(Title:"OK",style: .Default,handler: { action in            self.dismissVIEwControllerAnimated(true,completion:nil)        }))        self.presentVIEwController(alert,animated:true,completion:nil)    }    addGroup.text = ""}overrIDe func vIEwDIDLoad() {    super.vIEwDIDLoad()    // Do any additional setup after loading the vIEw,typically from a nib.    addGroup.placeholder = "Enter Group name"}overrIDe func dIDReceiveMemoryWarning() {    super.dIDReceiveMemoryWarning()    // dispose of any resources that can be recreated.}overrIDe func touchesBegan(touches:NSSet,withEvent event:UIEvent){    super.touchesBegan(touches,withEvent: event)    self.vIEw.endEditing(true)}func textFIEldShouldReturn(textFIEld: UITextFIEld!) -> Bool // called when 'return' key pressed. return NO to ignore.{    textFIEld.resignFirstResponder()    return true;}func tableVIEw(tableVIEw:UItableVIEw,numberOfRowsInSection section: Int) -> Int {    return groupList.count}func numberOfSectionsIntableVIEw(tableVIEw:UItableVIEw) -> Int {    return 1}func tableVIEw(tableVIEw:UItableVIEw,cellForRowAtIndexPath indexPath:NSIndexPath) -> UItableVIEwCell {    var cell:UItableVIEwCell = tableVIEw.dequeueReusableCellWithIDentifIEr("groupcell") as UItableVIEwCell    cell.textLabel?.text = groupList[indexPath.row]    return cell}}
解决方法 首先以这种方式为表视图创建一个IBOutlet:
class VIEwController: UIVIEwController,UItableVIEwDataSource,UITextFIEldDelegate {var groupList = [String]()@IBOutlet weak var addGroup: UITextFIEld!@IBOutlet weak var tableVIEw: UItableVIEw!  //<<-- tableVIEw Outlet// Rest of your code..}

之后在vIEwDIDLoad方法中执行此 *** 作:

overrIDe func vIEwDIDLoad() {    super.vIEwDIDLoad()    self.tableVIEw.registerClass(UItableVIEwCell.self,forCellReuseIDentifIEr: "groupcell")    self.addGroup.delegate = self    tableVIEw.delegate = self    tableVIEw.dataSource = self}

之后,您可以在将元素添加到groupList后重新加载tableVIEw.在这里你可以这样做:

@IBAction func addGroupbutton(sender: AnyObject) {    // Your Code    } else {        groupList.append(addGroup.text)        self.tableVIEw.reloadData()    }   //Your Code}

并更新此功能:

func tableVIEw(tableVIEw: UItableVIEw,cellForRowAtIndexPath indexPath: NSIndexPath) -> UItableVIEwCell{    let cell : UItableVIEwCell = tableVIEw.dequeueReusableCellWithIDentifIEr("groupcell",forIndexPath: indexPath) as UItableVIEwCell    cell.textLabel.text = self.groupList[indexPath.row]    return cell}

您可以检查我为您创建的最终代码是HERE.

总结

以上是内存溢出为你收集整理的ios – 在Swift中的UIViewController中添加UITableView的问题全部内容,希望文章能够帮你解决ios – 在Swift中的UIViewController中添加UITableView的问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1103927.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存