Я пробовал несколько концепций о segues. Поэтому я создал secondViewController
и thirdViewController
, я также создал файл ViewController для secondViewController
. Затем я добавляю кнопку на secondViewController
и некоторые коды до secondViewController.swift
. Вот код, достаточно прост:Сбой при вызове @IBAction func в файле secondViewController
import UIKit
class secondViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func onNext(sender: AnyObject) {
let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("thirdViewController")
showViewController(vc, sender: self)
}
}
После сборки и запуска, когда я нажимаю на кнопку «Далее», он разбился.
2016-02-21 14:28:24.244 test[4176:476944] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewController onNext:]: unrecognized selector sent to instance 0x7fea72c48e20'
*** First throw call stack:
(
0 CoreFoundation 0x000000010f795e65 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x00000001114d5deb objc_exception_throw + 48
2 CoreFoundation 0x000000010f79e48d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
3 CoreFoundation 0x000000010f6eb90a ___forwarding___ + 970
4 CoreFoundation 0x000000010f6eb4b8 _CF_forwarding_prep_0 + 120
5 UIKit 0x000000010ffb4194 -[UIApplication sendAction:to:from:forEvent:] + 92
6 UIKit 0x000000011fc -[UIControl sendAction:to:forEvent:] + 67
7 UIKit 0x000000011c8 -[UIControl _sendActionsForEvents:withEvent:] + 311
8 UIKit 0x0000000110122af8 -[UIControl touchesEnded:withEvent:] + 601
9 UIKit 0x000000011002349b -[UIWindow _sendTouchesForEvent:] + 835
10 UIKit 0x00000001100241d0 -[UIWindow sendEvent:] + 865
11 UIKit 0x000000010ffd2b66 -[UIApplication sendEvent:] + 263
12 UIKit 0x000000010ffacd97 _UIApplicationHandleEventQueue + 6844
13 CoreFoundation 0x000000010f6c1a31 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
14 CoreFoundation 0x000000010f6b795c __CFRunLoopDoSources0 + 556
15 CoreFoundation 0x000000010f6b6e13 __CFRunLoopRun + 867
16 CoreFoundation 0x000000010f6b6828 CFRunLoopRunSpecific + 488
17 GraphicsServices 0x0000000113dabad2 GSEventRunModal + 161
18 UIKit 0x000000010ffb2610 UIApplicationMain + 171
19 test 0x000000010f5b750d main + 109
20 libdyld.dylib 0x0000000111fde92d start + 1
21 ??? 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
Как это исправить? Заранее спасибо
У вас есть ViewController с ** thirdViewController ** как идентификатор, настроенный в раскадровке? Что делает 'showViewController'? Можете ли вы подробно известить об исключении? –
Да, я установил идентификатор для thirdViewController, вы имеете в виду это? 'showViewController' представляет контроллер представления в основном контексте. Я просто подробно изложил исключение. – luiyezheng
Можете ли вы проверить свою раскадровку, если вы правильно подключили IBAction 'onNext:' к кнопке? –