我正在创建我的第一个简单的预算应用程序.基本上,我采取一些用户输入,如月收入和储蓄目标.然后他们点击"开始",该应用程序计算诸如他们的每日预算等内容.
我遇到了麻烦.在完成所有计算之后,我会显示"你每天可以花多少钱"(例如每天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) 我正在嵌套一个collection view表格视图单元格的内部。我需要实现一个类似于netflix应用商店的屏幕。您有类别的地方,例如 
我需要从 JSON 加载数据,例如 - “Popular”可能有 11 个视频,“Action”可能有 3 个视频,“Adventures”可能有 20 个。所以在每个表视图单元格中,特定的集合视图将加载不同数量的集合视图单元格取决于每个类别(热门、动作、冒险)中的视频数量,它们将显示在其各自的水平集合视图中。
到目前为止,我的代码在表视图标题中显示每个类别标题。但是在该类别中,在集合视图numberOfItemsInSection和cellForItemAt 中,我找不到一种方法来相互依赖地加载每个集合视图。例如,与流行相关的集合视图 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) 我是 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)