相关疑难解决方法(0)

使用Swift与Segue一起发送数据

我有两个视图控制器和两个视图.在我的第一个视图中,我将变量'currentUser'设置为false.我需要能够在第二个视图控制器中将'currentUser'设置为true.

当尝试从第二个视图引用'currentUser'时,由于在第一个视图控制器中定义了'currentUser',因此它不会将其拾取.

如何使用segue传递变量?

ios segue swift

36
推荐指数
2
解决办法
4万
查看次数

Swift将计算数据传递回上一个视图控制器

我正在创建我的第一个简单的预算应用程序.基本上,我采取一些用户输入,如月收入和储蓄目标.然后他们点击"开始",该应用程序计算诸如他们的每日预算等内容.

我遇到了麻烦.在完成所有计算之后,我会显示"你每天可以花多少钱"(例如每天20美元),然后通过原始屏幕上的原始输入传递segue.

现在,在这个VC(UserInfoVC)中我创建了一个按钮,让他们可以添加今天花了多少钱.因此,当他们点击这个"花钱"按钮时,我打开一个新的VC(AddSubtractMoney),在那里我会提供一个计算器,在那里他们可以输入他们今天花了多少钱(即12美元)并点击提交.

我将他们的输入与每日预算相比较,以获得新的每日预算.

现在,我无法向后传递这个更新的数字,将其显示在标签"dailySpendingLimitLabel"上的前一个VC上.我知道segues不是向后传递数据的最佳方式.

我已经尝试过闭包,但我最终迷失在语法,协议和代理中(这是我的第二个月编码).

有没有一种简单的方法可以将这些数据传回上一个VC并填充前一个显示标签中的数据?

下面是代码.

第一个片段来自UserInfoVC,我在其中显示我最初输入的数据.第二个片段来自AddSubtractMoney我放置计算器的类,并在函数内创建了一个对象"newestUpdate",允许我计算他们在计算器上输入的数字减去旧的每日预算.为了得到一个新的预算,我想向后呈现UserInfoVC.

class UserInfoViewController : ViewController {

var userNamePassedOver : String?
var userDailyBudgetPassedOver : Double = 99.0
var userDailySavingsPassedOver : Double = 778.00
var userMonthlyEarningsPassedOver : Double?
var userDesiredSavingsPassedOver : Double?
var newAmountPassedBack : Double = 0.0


@IBOutlet weak var dailySavingsNumberLabel: UILabel!
@IBOutlet weak var userNameLabel: UILabel!
@IBOutlet weak var dailySpendingLimitLabel: UILabel!



override func viewDidLoad() {
    super.viewDidLoad()

    userNameLabel.text = userNamePassedOver
    dailySpendingLimitLabel.text = String(format: "%.2f", userDailyBudgetPassedOver) …
Run Code Online (Sandbox Code Playgroud)

viewcontroller ios segue swift

5
推荐指数
2
解决办法
8101
查看次数

标签 统计

ios ×2

segue ×2

swift ×2

viewcontroller ×1