需要将tableView中的值传递给另一个视图上的标签吗?

时间:2015-10-29 17:10:13

标签: ios swift uitableview delegates uilabel

我在视图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 ++
    }
}

1 个答案:

答案 0 :(得分:0)

试试这个,

1)AppDelegate.swift中的Init变量

var data:Int!=0

2)在两个viewcontroller中创建一个AppDelegate实例

let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate

3)在appDelegate变量上按init值传递数据。

例如:

self.appDelegate.data=1

Viewcontroller1:

    let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate

override func viewWillAppear(animated: Bool) {
   your_labelName.text="\(self.appDelegate.data)" // to show label data
}

Viewcontroller2:

let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate

var count:Int=0

func incAction()
{
  count++
  self.appDelegate.data=count // pass increment value to first view
}