所以我的页面上有一堆按钮,并将它们分类为[UIButton]类型的数组,并调用buttonsArray。
当你点击其中一个按钮时,我的动作与goToFacts功能相关联,这与我的segue" goToFactSegue"并将WHICH按钮(发送者)的信息传递给我准备segue功能。我的prepareforSegue函数确认segue标识符是正确的,然后在DetailViewController页面上将变量索引设置为正确的数字。我计算索引的正确数字的方式(称为whichIndex)是通过匹配哪个索引(被点击的按钮)在buttonsArray中。我的问题是找到被点击的按钮的标题/名称(发件人)并将其设置为theButtonsName,这样我就可以在我的buttonsArray中搜索它并找到它的索引。
TL; DR如何像在UIImageView上使用.view一样拉出UIButton的名称
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "goToFactSegue" {
// send info to next page
if let whereToGo = segue.destinationViewController as? DetailViewController {
let theButtonsName = sender!.******** as! UIButton
if let whichIndex = find(buttonsArray, theButtonsName) {
whereToGo.index = whichIndex
}}
}
}
@IBAction func goToFacts(sender: UIButton) {
performSegueWithIdentifier("goToFactSegue", sender: sender)
}
我已经搜索了xcode建议的所有可能性,没有任何与UIButton交互,阅读文档,他们所谈论的是.titleLabel,这是实际文本(并且不,.titleLabel没有&t工作) 还尝试了通常的嫌疑人(命名的变种......等)
答案 0 :(得分:2)
我建议您通过对应用程序执行操作的非常简短的解释来标记按钮。您可以使用故事板进行操作,使用1,2,3,...,n等值标记每个按钮,然后您将获得您似乎正在寻找的索引。 UIButton有一个属性标记:
@IBAction func goToFacts(sender: UIButton) {
performSegueWithIdentifier("goToFactSegue", sender: sender)
whichIndex = sender.tag
}
所以,有发件人。
{% load i18n %}
{% load l10n %}
{% load humanize %}
{% load form_fields %}
....
<form id="login_form" class="reg-page" method="post" action="{% url 'django.contrib.auth.views.login' %}" >
{% csrf_token %}
<input type="hidden" name="next" value="{{ next }}" />
{% if form.errors %}
<div class="alert alert-danger alignCenter">
<strong>
{% trans "Incorrect username or password." %}
<br />
{% trans "Please try again." %}
</strong>
</div>
<br />
{% elif form.account_disabled_error %}
<div class="alert alert-danger alignCenter">
<strong>
{% trans "Account Disabled." %}
<br />
{% trans "Contact Administrator." %}
</strong>
</div>
<br />
{% endif %}
<div class="login-input">
{% form_field form.username %}
</div>
<div class="login-input">
{% form_field form.password %}
</div>
<div class="alignCenter">
<input type="submit" class="btn-u btn-u-blue" value="{% trans 'Log In' %}" />
<span class="hidden-xs"> </span>
<span class="visible-xs"><br /></span>
<input type="button" class="btn btn-default" onClick="login_form.reset();resetLoginForm();" value="{% trans 'Reset' %}" />
<input class="btn btn-default" type="button" value="{% trans 'Cancel' %}" data-dismiss="modal" />
</div>
</form>
答案 1 :(得分:1)
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "goToFactSegue" {
if let whereToGo = segue.destinationViewController as? DetailViewController {
let button = sender as! UIButton
let theButtonsName = button.titlelabel?.text
if let whichIndex = find(buttonsArray, theButtonsName) {
whereToGo.index = whichIndex
}
}
}
}