В настоящее время я делаю демонстрационное приложение iOS для практики в быстром режиме, и у меня возникла проблема. Я только что создал новую страницу, и на этой странице есть только одна кнопка. Я связал кнопку с функцией IBAction и показал правильное соединение.IBAction func правильно подключен, но не выполняет
Я бы показал вам снимок экрана, но у меня нет достаточной репутации (каждый другой вопрос, который у меня когда-либо был, я мог найти сообщение от кого-то другого).
Он даже показывает круг с заполненной точкой, и при нажатии на него отображается правильная кнопка. В инспекторе соединений он отображает при отправленных событиях соединение между «Touch Up Inside» и «UserPage btnProgressClick» (Userpage - это мой класс, который расширяет UIViewController и ссылается на этот пакетный контроллер просмотра, а btnProgressClick - это имя функции IBAction, которую я хочу бег).
Я нашел this post, и я попробовал чистую сборку, но это не сработало. Я также передвинул свою кнопку вокруг, и она правильно обновилась в симуляторе.
Код внутри btnProgressClick не выполняется. Я поставил точку останова в первой строке и не сломался.
Вот XML-код «Main.storyboard», который связывает кнопку с функцией.
<!--User Page-->
<scene sceneID="aNb-aX-hZF">
<objects>
<viewController storyboardIdentifier="UserPage" id="w2h-zR-Kdu" customClass="UserPage" customModule="GenomeTrackerDemo" customModuleProvider="target" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="9dS-Hw-ZYg"/>
<viewControllerLayoutGuide type="bottom" id="7PS-pA-lFe"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="w6A-eT-aKv">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="JGD-xx-tMQ">
<rect key="frame" x="20" y="48" width="46" height="30"/>
<state key="normal" title="Button"/>
<connections>
<action selector="btnProgressClick:" destination="w2h-zR-Kdu" eventType="touchUpInside" id="F1N-QY-fhb"/>
</connections>
</button>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="Fsq-L4-Are" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="1043" y="426"/>
</scene>
и вот UserPage Класс:
import Foundation
import UIKit
class UserPage: UIViewController {
var thisUser: User = User()
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func btnProgressClick(sender: UIButton) {
let storyboard = UIStoryboard(name: "Main", bundle:nil)
let vc: progressPage = storyboard.instantiateViewControllerWithIdentifier("progressPage") as! progressPage
UIView.transitionFromView(self.view, toView: vc.view, duration: 0.8, options: UIViewAnimationOptions.TransitionFlipFromRight, completion: nil)
}
}
Как я уже говорил, это мой первый вопрос, так что я открыт для обратной связи о том, как она была сформулирована и то, что информация, которую я дал.
Я хотел бы добавить некоторую информацию о том, как называется эта страница. Он вызывается после вызова Async веб-службе. После того как данные успешно вернули мне перейти на страницу с этой функцией:
func afterSuccessfulLogin(thisUser: User){
dispatch_async(dispatch_get_main_queue()){
let storyboard = UIStoryboard(name: "Main", bundle:nil)
let vc: UserPage = storyboard.instantiateViewControllerWithIdentifier("UserPage") as! UserPage
vc.thisUser = thisUser
UIView.setAnimationCurve(.EaseIn)
UIView.transitionFromView(self.view, toView: vc.view, duration: 1.2, options: UIViewAnimationOptions.TransitionFlipFromRight, completion: nil)
}
}
не уверен, если это делает разницу, но я полагал, что я бы бросить это там.
Любая помощь по этому вопросу была бы очень полезной.
Спасибо!
Как вы подтвердили, что функция не вызывается, попытались ли вы установить точку останова в этой функции, чтобы убедиться, что она не встречается? –
Согласовано. Похоже, что розетка была сделана правильно, поэтому мне любопытно, называется ли какая-либо функция. – Russell
Да, это именно то, что я сделал. Точка останова никогда не попадалась. Извините, я должен был положить это в сообщение. –