如何从一个viewcontroller发送信息到另一个? (Swift - IOS)

时间:2015-12-24 01:24:17

标签: ios swift

我正在xcode 7.2中尝试制作一个项目。 所以,我有两个viewcontrolers:  在第一个我有5个按钮。  在第二个我有一个标签和一个分段控件。

所以我想要做的是,根据我在第一个VIewController中按下的按钮来更改标签和分段控件标题(按钮的标题)。

例如,如果我按下按钮A,在第二个视图控制器中标签将显示"您按下按钮A"并且分段控件的3个按钮应该表示" A"," B"," C"。 但是,如果我按下按钮B,在第二个视图控制器中标签会说"你按下了按钮B"分段控件的3个按钮应该说" D"," E"," F"。

任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:0)

在我的第二个视图控制器上确认的第一个View Controller上创建协议,因此每当您按下第一个视图控制器中的按钮时,您可以使用该委托并通知另一个视图控制器更改的视图状态。

答案 1 :(得分:0)

您可以通过segue传递数据。

在要转到的视图控制器中,设置名为title的变量。

Second View Controller:<br>
    var vcTitle:String = ""

然后在你的第一个VC中添加:

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
  if (segue.identifier == "secondViewControllerSegue") {
    // pass data to next view
    // Create a variable called pressedButtonTitle that is set after the user presses a segment
    let destinationController = segue.destinationViewController as! SecondViewController;
    destinationController.vcTitle = pressedButtonTitle;


  }
}

答案 2 :(得分:0)

更具体地说明如何使用prepareForSegue

一种选择是:
 1.在segue上为identifier storyboard提供prepareForSegue  2.在segue.identifier中,选中identifier以查看它是否与您刚刚设置的相应var vc = (ViewNoteViewController) segue.destinationViewController 相匹配  3.如果匹配,则可以访问目标视图控制器,如下所示:

IBOutlets

4。使用vc并从那里访问您的标签和分段控件(假设您已经$(document).ready(function() { $(window).scroll(function() { var $box = $("#box"); if ($(window).scrollTop() > 30) { $box.addClass("fixed"); } if ($(window).scrollTop() < 30) { $box.removeClass("fixed"); } if ($(window).width() > 780) { $box.removeClass("fixed"); } if ($(window).width() < 780) { $box.addClass("fixed"); } }); });