小编Cod*_*ing的帖子

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
查看次数

表格视图单元格内的嵌套集合视图 swift iOS

我正在嵌套一个collection view表格视图单元格的内部。我需要实现一个类似于netflix应用商店的屏幕。您有类别的地方,例如 在此处输入图片说明

我需要从 JSON 加载数据,例如 - “Popular”可能有 11 个视频,“Action”可能有 3 个视频,“Adventures”可能有 20 个。所以在每个表视图单元格中,特定的集合视图将加载不同数量的集合视图单元格取决于每个类别(热门、动作、冒险)中的视频数量,它们将显示在其各自的水平集合视图中。

到目前为止,我的代码在表视图标题中显示每个类别标题。但是在该类别中,在集合视图numberOfItemsInSectioncellForItemAt 中,我找不到一种方法来相互依赖地加载每个集合视图。例如,与流行相关的集合视图 1应加载 11 个单元格,与操作相关的集合视图 2应加载 3 个单元格。以下是我到目前为止的代码

我的表视图方法位于视图控制器内部

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 1
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    guard let cell = tableView.dequeueReusableCell(withIdentifier: "categoriesCell") as? CategoriesTableViewCell else { return UITableViewCell() }

    return cell
}

func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> …
Run Code Online (Sandbox Code Playgroud)

uitableview ios uicollectionview

5
推荐指数
1
解决办法
2691
查看次数

将对象存储在用户默认值 swift 中

我是 swift 的新手,并试图找出存储用户默认值的最佳方式。这是我的应用程序的 3 个初始 VC 类,我将数据从登录视图传递到开始您的计划视图,再到用户信息(配置文件视图)——这是我需要为用户存储默认值的地方。我的问题是 - 存储的唯一用户默认值是“姓名”和“月薪”似乎也有效。但是“每日预算默认值”和“每日储蓄默认值”(双打)似乎没有存储并出现在第三个屏幕(用户配置文件)上。我没有得到正确的参考。

第一段代码来自登机视图控制器,我在那里收集他们的信息 - 为了简短起见,我只显示了 calculateData IBAction。截至目前 - 这是我试图获取他们的用户默认值的地方。

信息的第二个 VC是在登机后直接查看的视图,用户可以在其中查看他们的信息 - 一旦他们从这个 VC 开始 - 我创建一个新的用户对象(我应该只创建一个新用户对象的数组并将其存储在 NSUserDefaults 下这里?)

第三个 VC - 这是实际的用户配置文件,我需要在其中显示所有用户默认值。我将把它设置为初始视图控制器并在应用程序委托中设置,如果用户之前已经完成了登录屏幕,则首先加载此页面。

请并感谢您的任何帮助!

 import UIKit

 class ViewController: UIViewController, UITextFieldDelegate{

   @IBAction func calculateDataButtonPressed(_ sender: UIButton) {

    customerName = nameTextField.text!


    if let payTotal = Double(monthlyAmountTextField.text!){
        monthlyEarning = payTotal
    }

    if let savingsNumber = Double(desiredSavingsTextField.text!){
        desiredSavingsAmount = savingsNumber

    }

    else {
        displayLabel.text = "Enter input as so: 1299.39"

    }


    budgetForEachDay = ((monthlyEarning - …
Run Code Online (Sandbox Code Playgroud)

nsuserdefaults ios swift

0
推荐指数
1
解决办法
3044
查看次数