ios - 如何向 UIAlert 添加功能
问题描述
所以我创建了两个函数(nenuProgressButton 和 nenuSurvivalButton) 我希望 nenuProgressButton 在单击时为进度条提供 0.1,并在选择 UIalert 上的动作标题时添加 0.5。我可以让大部分工作正常,但是当我选择“应用”(即 uialert 操作的标题)时,它会将 0.1 添加到我的进度条,然后如果我再次单击它,进度条几乎会冻结。或者如果我最初单击 uialert 动作标题它将添加 0.1,但是如果我单击 nenuProgress 按钮,它将添加 0.5 而不是 0.1,如果我再次单击进度按钮,进度条将减去 0.5,可以去回到之前的状态。我非常不确定是什么导致了这种并发症,但这是我的代码,非常感谢任何帮助,谢谢
class Characters: UIViewController {
var pb = ProgressBrain()
var toNextLevel = 10
var xpGained = 1
var nenuEx = 1
var nenuSurvival = 5
@IBOutlet var nenuProgress: UIProgressView!
@IBOutlet var remfoProgress: UIProgressView!
@IBOutlet var oneiroProgress: UIProgressView!
@IBOutlet var nenuLevel: UILabel!
@IBOutlet var nenuTab: UITabBarItem!
@IBOutlet weak var selector: UISegmentedControl!
@IBOutlet weak var characterImg: UIImageView!
@IBOutlet var routine: UIView!
var views: [UIView]!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func progressButton(_ sender: UIButton) {
nenuProgressButton()
}
func nenuProgressButton() {
let percentageProgress = Float(xpGained) / Float(toNextLevel)
if xpGained < toNextLevel + 1{
nenuProgress.progress = Float(percentageProgress)
print(Float(percentageProgress))
xpGained += 1
} else if xpGained == toNextLevel + 1 {
nenuProgress.progress = 0.0
xpGained -= toNextLevel
switch nenuLevel.text {
case "1":
nenuProgress.progress = 0.0
toNextLevel += 3
nenuLevel.text = "2"
case "2":
xpGained = 1
toNextLevel += 3
nenuLevel.text = "3"
case "3":
xpGained = 1
toNextLevel += 3
nenuLevel.text = "4"
case "4":
xpGained = 1
toNextLevel += 3
nenuLevel.text = "5"
case "5":
xpGained = 1
toNextLevel += 3
nenuLevel.text = "6"
case "6":
xpGained = 1
toNextLevel += 3
nenuLevel.text = "7"
case "7":
xpGained = 1
toNextLevel += 3
nenuLevel.text = "8"
case "8":
xpGained = 1
toNextLevel += 3
nenuLevel.text = "9"
case "9":
xpGained = 1
toNextLevel += 3
nenuLevel.text = "10"
default:
print("Something went wrong")
}
}
}
func nenuSurvivalButton() {
let percentageProgress = Float(xpGained) / Float(toNextLevel)
nenuProgress.progress = Float(percentageProgress)
print(Float(percentageProgress))
nenuProgress.progress += Float(xpGained)
xpGained += 5
if xpGained >= toNextLevel + 1 {
nenuProgress.progress = 0.0
xpGained -= toNextLevel
switch nenuLevel.text {
case "1":
nenuProgress.progress = 0.0
toNextLevel += 3
nenuLevel.text = "2"
case "2":
xpGained = 5
toNextLevel += 3
nenuLevel.text = "3"
case "3":
xpGained = 5
toNextLevel += 3
nenuLevel.text = "4"
case "4":
xpGained = 5
toNextLevel += 3
nenuLevel.text = "5"
case "5":
xpGained = 5
toNextLevel += 3
nenuLevel.text = "6"
case "6":
xpGained = 1
toNextLevel += 3
nenuLevel.text = "7"
case "7":
xpGained = 1
toNextLevel += 3
nenuLevel.text = "8"
case "8":
xpGained = 1
toNextLevel += 3
nenuLevel.text = "9"
case "9":
xpGained = 1
toNextLevel += 3
nenuLevel.text = "10"
default:
print("Something went wrong")
}
}
}
}
@IBAction func nenuPopUp(_ sender: UIButton) {
let alert = UIAlertController(title: "Perform Application", message: "48 Laws of power", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "Apply", style: .default, handler: { (action: UIAlertAction) in
self.nenuSurvivalButton()
} ))
self.present(alert, animated: true, completion: nil)
}
解决方案
推荐阅读
- python - Python shelve.open 上的资源暂时不可用
- java - Bill pugh 解决方案与 Lazy Initialized Singleton 解决方案相比有什么优势?
- ios - UITableView 似乎没有链接到我的 assets.sxassets 文件夹以获取图像?
- android - 启动新的android项目时无法创建目录
- android - MUC 服务不支持 MUC 配置“muc#roomconfig_roomowners”
- php - 在 Laravel 中更改会话数组的项目
- postgresql - 在 postgresql 中的更新触发器无法按预期工作后
- html - 如果用户只开始在输入字段中输入,如何显示弹出框?
- ios - Measure 应用程序是否有可用的 URL 方案?
- oracle - Vert.x 和 Oracle 数据库 - 如何调用返回整数表的函数?