需要将值从我的 tableView 传递到另一个视图上的标签?
Posted
技术标签:
【中文标题】需要将值从我的 tableView 传递到另一个视图上的标签?【英文标题】:Need to pass a value from my tableView to a label on another view? 【发布时间】:2015-10-29 17:10:12 【问题描述】:我在视图 2 上的 tableView 有一个客户列表。在视图 1 中,我只是希望客户数量以 int 形式显示在显示客户总数的标签上。
我认为这与numberOfRowsInSection
有关。
但是,我尝试了所有不同的方式在两个视图控制器之间进行委托,但似乎没有任何效果。当新客户端添加到视图 2 的列表中时,我无法让视图 1 上的标签增加 +1。
我已经做了好几天了,我无法弄清楚我做了什么假设是一项简单的任务。
顺便说一句,我是 Swift 的新手。
我使用的视图 2:
protocol ClientTrackingViewControllerDelegate: class
func incrementClients()
然后我添加了我的:var delegate: ClientTrackingViewControllerDelegate?
在我使用的视图 1
ClientTrackingViewControllerDelegate
在类行中。
我这样定义了上面提到的func
:
func incrementClients()
var counter: Int = 0
counter = TotalClientsLabel.text
if counter == 0
counter ++
【问题讨论】:
您的控制器之间是什么关系?导航控制器、模态视图、push segue? @DejanSkledar 它实际上在两个标签之间 @DejanSkledar 它实际上在 2 个标签之间 【参考方案1】:试试这个,
1) AppDelegate.swift 中的初始化变量
var data:Int!=0
2) 在你的两个视图控制器中创建一个 AppDelegate 实例
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
3) 通过 appDelegate 变量的初始值传递您的数据。
例如:
self.appDelegate.data=1
视图控制器1:
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
override func viewWillAppear(animated: Bool)
your_labelName.text="\(self.appDelegate.data)" // to show label data
视图控制器2:
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
var count:Int=0
func incAction()
count++
self.appDelegate.data=count // pass increment value to first view
【讨论】:
还有什么建议吗?一直很感激 @MatthewEhrlich,是否更新 appDelegate 变量中的增量, 它告诉我它不能赋值,因为它是不可变的,我尝试将所有从 let 更改为 var,它工作并构建。但我的标签根本没有更新。以上是关于需要将值从我的 tableView 传递到另一个视图上的标签?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 JavaScript 将值从一个 HTML 页面传递到另一个页面?