需要将值从我的 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 传递到另一个视图上的标签?的主要内容,如果未能解决你的问题,请参考以下文章

将值从一个组件传递到另一个组件

如何使用会话将值从一个php页面传递到另一个页面

将值从一个函数传递到另一个JS

如何使用 JavaScript 将值从一个 HTML 页面传递到另一个页面?

通过使用 java 脚本,我如何将值从一个 html 页面传递到另一个 html 页面? [复制]

将值从一个函数传递到另一个C ++