- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个关于 swift 中的 UIAlertview
的问题。我有一个警报 View ,允许用户在“教师”和“学生”两个选项之间进行选择,并根据单击的按钮将用户带到新屏幕。它工作正常,唯一的问题是我在每个新屏幕上都有一个后退按钮,如果用户单击了错误的按钮,该按钮会将用户带回到上一个屏幕。这就是问题发生的地方。如果用户在 naviagting
返回页面后单击触发 alertview
的按钮,则 alertivew
会记住用户上次单击的按钮并执行以此为基础。抱歉,如果这令人困惑,我希望他们每次都能在选项之间进行选择,并且让 alertview
不根据他们之前的选择执行。抱歉,如果这令人困惑,非常感谢所有帮助。
这是我目前的代码
@IBAction func needToRegisterClicked(sender: AnyObject) {
let alertController = UIAlertController(title: "Please choose", message: "Teacher or Student?", preferredStyle: UIAlertControllerStyle.Alert)
alertController.view.tintColor = UIColor.blackColor()
alertController.addAction(UIAlertAction(title: "Teacher", style: .Default, handler: { (action) in
print("Teacher Chosen")
let ac = UIAlertController(title: "Enter Access Code", message: nil, preferredStyle: .Alert)
ac.addTextFieldWithConfigurationHandler { (textField: UITextField!) in
textField.keyboardType = UIKeyboardType.NumberPad }
ac.view.tintColor = UIColor.blackColor()
let submitAction = UIAlertAction(title: "Submit", style: .Default) { [unowned self, ac] (action: UIAlertAction!) in
let answer = ac.textFields![0] as! UITextField
if answer.text == "3280464" {
self.performSegueWithIdentifier("School Register", sender: nil)
} else {
let alert2 = UIAlertController(title: "Sorry!", message: "Incorrect access code", preferredStyle: UIAlertControllerStyle.Alert)
self.presentViewController(alert2, animated: true, completion: nil)
alert2.addAction(UIAlertAction(title: "Dismiss", style: .Default, handler: nil))
}
// do something interesting with "answer" here
}
ac.addAction(submitAction)
self.presentViewController(ac, animated: true, completion: nil)
}))
alertController.addAction(UIAlertAction(title: "Student", style: .Default, handler: { (action) in
print("Student Chosen")
self.performSegueWithIdentifier("Student", sender: nil)
}))
self.dismissViewControllerAnimated(true, completion: nil)
self.presentViewController(alertController, animated: true, completion: nil)
}
编辑:每次按下按钮时,我究竟如何实例化一个新的alertView?抱歉,如果问这个问题很愚蠢,我对整个事情非常陌生。
编辑:我尝试了所有建议的选项,但没有成功,但我现在能够自己解决。我所需要做的就是从末尾删除 self.dismissViewControllerAnimated(true,completion: nil) 。感谢所有回复的人,我真诚地感谢您抽出时间。
最佳答案
我认为如果用户在警报 Controller 中按下了不正确的操作,您想要的是返回到第一个 ViewController,所以我所做的是:- 我添加了“学生”按钮,其代码与教师按钮相同- 我创建了一个存储 bool 值的var,如果true是老师,否则是学生,当你选择你是老师时,var存储一个true值,否则,如果按下学生按钮,它存储false,然后转到下一个ViewController- 在第二个 ViewController 中我创建了一个按钮(后退)
self.performSegueWithIdentifier("backToFirst", 发件人: self)
FirstViewController
import UIKit
var isTeacher: bool !
ViewController 类:UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
@IBAction func needToRegisterClicked(sender: AnyObject) {
let alertController = UIAlertController(title: "Please choose", message: "Teacher or Student?", preferredStyle: UIAlertControllerStyle.Alert)
alertController.view.tintColor = UIColor.blackColor()
//Button teacher
alertController.addAction(UIAlertAction(title: "Teacher", style: .Default, handler: { (action) in
print("Teacher Chosen")
isTeacher = true
let ac = UIAlertController(title: "Enter Access Code", message: nil, preferredStyle: .Alert)
ac.addTextFieldWithConfigurationHandler { (textField: UITextField!) in
textField.keyboardType = UIKeyboardType.NumberPad }
ac.view.tintColor = UIColor.blackColor()
let submitAction = UIAlertAction(title: "Submit", style: .Default) { [unowned self, ac] (action: UIAlertAction!) in
let answer = ac.textFields![0] as! UITextField
if answer.text == "3280464" {
self.performSegueWithIdentifier("School Register", sender: self)
} else {
let alert2 = UIAlertController(title: "Sorry!", message: "Incorrect access code", preferredStyle: UIAlertControllerStyle.Alert)
self.presentViewController(alert2, animated: true, completion: nil)
alert2.addAction(UIAlertAction(title: "Dismiss", style: .Default, handler: nil))
}
// do something interesting with "answer" here
}
ac.addAction(submitAction)
self.presentViewController(ac, animated: true, completion: nil)
}
//Ends Button Teacher
)
)
//Button Student
alertController.addAction(UIAlertAction(title: "Student", style: .Default, handler: { (action) in
print("Student Chosen")
isTeacher = false
let ac = UIAlertController(title: "Enter Access Code", message: nil, preferredStyle: .Alert)
ac.addTextFieldWithConfigurationHandler { (textField: UITextField!) in
textField.keyboardType = UIKeyboardType.NumberPad }
ac.view.tintColor = UIColor.blackColor()
let submitAction = UIAlertAction(title: "Submit", style: .Default) { [unowned self, ac] (action: UIAlertAction!) in
let answer = ac.textFields![0] as! UITextField
if answer.text == "3280464" {
self.performSegueWithIdentifier("School Register", sender: self)
} else {
let alert2 = UIAlertController(title: "Sorry!", message: "Incorrect access code", preferredStyle: UIAlertControllerStyle.Alert)
self.presentViewController(alert2, animated: true, completion: nil)
alert2.addAction(UIAlertAction(title: "Dismiss", style: .Default, handler: nil))
}
// do something interesting with "answer" here
}
ac.addAction(submitAction)
self.presentViewController(ac, animated: true, completion: nil)
}
)
)
//Ends Button Student
self.presentViewController(alertController, animated: true, completion: nil)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
SecondViewController
import UIKit
记录的类:ViewController{
@IBAction func Back(sender: AnyObject) {
self.performSegueWithIdentifier("backToFirst", sender: self)
}
@IBOutlet weak var navBar: UINavigationBar!
override func viewDidLoad() {
super.viewDidLoad()
if(isTeacher == true){
navBar.topItem?.title = "Teacher Area"
}else{
navBar.topItem?.title = "Student Area"
}
}
}
希望对你有帮助
关于ios - swift/Xcode 中的 UIAlertView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38665827/
这个问题已经有答案了: iOS How to dismiss UIAlertView with one tap anywhere? (2 个回答) 已关闭10 年前。 嗨,我是 Xcode 新手,ob
我试图在我的 swift 应用程序中显示一个 UIAlertView alert = UIAlertView(title: "", message: "bla",
问题是 iOS 键盘有时不再有反应。所以没有输入是可能的。如果我取消注释 clickedButtonAtIndex 中的第二个 UIAlertView,它工作正常。 原因可能在其他地方?我不知道...
我是 iPhone 开发人员的新人, 我想依次实现2个警报 View ,就像当用户按下删除按钮时,第一个警报 View 会询问你确定要删除吗?有两个按钮是 和否 现在,如果用户按 yes ,则第二个警
我想弄清楚为什么我的应用程序会崩溃。 它在带有 ios5.1 的模拟器中运行的 Xcode 4.4 中运行良好,但是当我切换到 xcode 4.5 和 ios6 时,我得到了 EXC_BAD_ACCE
我的 iOS 应用程序正在使用 Swift 2.0、RMUniversalAlert 版本 0.7 和 UIAlertView+Blocks 版本 0.9 当我在 Xcode 7 中构建它时,出现错误
我遇到了崩溃: *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-
我在主线程上显示 UIAlertView 时遇到问题。我不知道为什么,但它不断崩溃,尽管我在主线程上运行。以下 block 位于后台线程上,但我在主线程上有警报,如下所示: void (^remove
我已将 iPhone 设置为横向模式,但当我尝试显示 UIAlertView 时,它会进入纵向模式。横向模式下如何显示? 最佳答案 在applicationDelegate.m文件的applicati
我使用 UIAlerView 子类创建自定义登录页面。现在,当我单击按钮时,它会打开 UIAlertView 我想根据按下的按钮更改主视图。 但是,由于 UIAlerView 的所有实现都在另一个类中
我弹出一个 UIAlertView 来询问用户是否确实要打开某个 URL。如果他们选择"is",我的应用程序会立即打开 URL 并发送到后台。当用户重新打开我的应用程序(使用多任务处理)时,警报 Vi
有没有办法将 .tag 添加到 UIAlertView 按钮?原因是,我向警报添加了一些动态按钮,这些按钮有时会出现在警报中,有时不会。我认为最好的方法是添加标签。有更好的方法吗? 警报中始终出现的选
我在 ib 中创建了一个自定义 uialertview,带有两个按钮和一个文本字段。然后我以这种方式创建一个 .h 和一个 .m: #import @interface DialogWelcome
看一下下面的代码,问题是AlertView没有显示出来,即使我在调试中看到代码已被执行。 请指教。 非常感谢 埃兰 -(void)displayABC:(id)sender { sta
我正在尝试更改 uialertview 的背景。一切工作正常,除了我添加到 uialert View 的背景图像不会在警报 View 内缩放。所以基本上你只能看到基于当前大小的背景图像的一部分。有什么
在我的应用程序中,我使用验证 key 通过 Wi-Fi 从服务器下载内容。如果许可证 key 错误或 wi-fi 不可用,我需要显示 UIAlert。我已经编写了用于显示警报 View 的男女混合代码
我创建了一个带有两个按钮和一个文本字段的 uialertview,如果文本字段为空,我希望禁用“确定”按钮。我如何获取 uibutton 对象来更改启用状态。 最佳答案 您可以使用从 UIContro
iPhone 应用程序开发人员您好, 我正在开发一个 iPhone 应用程序。该应用程序允许用户将图像上传到我的服务器。我想在alertView中显示上传进度。我需要一些示例代码来说明如何实现带有进度
有没有办法以编程方式隐藏 UIAlertView。我正在我的进度 View 中显示进度 View ,当进度 View = 1.0 时,我想隐藏 UIAlertView。 最佳答案 您可以做的是观察(使
这个问题已经有答案了: 已关闭10 年前。 Possible Duplicate: Is it possible to lay out 2 buttons vertically on UIAlertV
我是一名优秀的程序员,十分优秀!