【问题标题】:Abnormal behaviour of uinavigationcontroller Clicking at UIButton throws exceptionuinavigationcontroller的异常行为点击UIButton会抛出异常
【发布时间】:2017-05-22 06:26:05
【问题描述】:

5 年前我一直在使用 Objective C,现在开始使用 Swift。我正面临这种异常行为,谷歌了很多但仍然没有得到解决方案,我在这里发布,以便它可能发生在其他一些事情上,并可能帮助我摆脱这个问题!

场景是: 我没有使用故事板而不是 xibs。在 AppDelegate(roorviewcontroller 是 navigationcotroller)-> 主视图控制器加载成功-> 第二个视图控制器也从主视图控制器成功加载,但从 2ndviewcontroller:我无法推​​送/弹出(单击按钮抛出异常。你可以在你最后测试这个场景,这不像我正在改变 ibaction 或 iboutlet 等的文本。

在 AppDelegate 中:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    window = UIWindow.init(frame: UIScreen.mainScreen().bounds)
    window?.backgroundColor = UIColor.whiteColor()
    let mainViewController = MainViewController()
    let navController = UINavigationController(rootViewController: mainViewController)

    window!.rootViewController = navController
    window!.makeKeyAndVisible()

在视图控制器中:

@IBAction func nextScreen()
{
    let loginViewController = UIViewController(nibName: "DViewController", bundle: nil)
    navigationController?.pushViewController(loginViewController, animated: true, completion: nil)

}

堆栈跟踪:

 -[UIViewController getTaf]: unrecognized selector sent to instance 0x7d961f10
 2017-01-07 20:15:00.125 January7[5083:187391] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewController getTaf]: unrecognized selector sent to instance 0x7d961f10'
 *** First throw call stack:
(
0   CoreFoundation                      0x002c2494 __exceptionPreprocess + 180
1   libobjc.A.dylib                     0x01fd9e02 objc_exception_throw + 50
2   CoreFoundation                      0x002cc253 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275
3   CoreFoundation                      0x0020189d ___forwarding___ + 1037
4   CoreFoundation                      0x0020146e _CF_forwarding_prep_0 + 14
5   libobjc.A.dylib                     0x01fee0b5 -[NSObject performSelector:withObject:withObject:] + 84
6   UIKit                               0x00ab4e38 -[UIApplication sendAction:to:from:forEvent:] + 118
7   UIKit                               0x00ab4db7 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 64
8   UIKit                               0x00c58f3b -[UIControl sendAction:to:forEvent:] + 79
9   UIKit                               0x00c592d4 -[UIControl _sendActionsForEvents:withEvent:] + 433
10  UIKit                               0x00c582c1 -[UIControl touchesEnded:withEvent:] + 714
11  UIKit                               0x00b3552e -[UIWindow _sendTouchesForEvent:] + 1095
12  UIKit                               0x00b365cc -[UIWindow sendEvent:] + 1159
13  UIKit                               0x00ad7be8 -[UIApplication sendEvent:] + 266
14  UIKit                               0x00aac769 _UIApplicationHandleEventQueue + 7795
15  CoreFoundation                      0x001d4e5f __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
16  CoreFoundation                      0x001caaeb __CFRunLoopDoSources0 + 523
17  CoreFoundation                      0x001c9f08 __CFRunLoopRun + 1032
18  CoreFoundation                      0x001c9846 CFRunLoopRunSpecific + 470
19  CoreFoundation                      0x001c965b CFRunLoopRunInMode + 123
20  GraphicsServices                    0x047d9664 GSEventRunModal + 192
21  GraphicsServices                    0x047d94a1 GSEventRun + 104
22  UIKit                               0x00ab2eb9 UIApplicationMain + 160
23  January7                            0x000cf781 main + 145
24  libdyld.dylib                       0x029f7a25 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException

【问题讨论】:

  • 你需要学会在你的问题中更好地布局你的代码。 (这里有建设性的批评——我在队列中还有另一个编辑,所以我现在不能这样做。)另外,你误读了异常——错误是在调用你编码为 getTaf() 的东西上。也许是错字?也许您要发送带有参数的东西?很难说,因为你的问题格式很差。
  • 同意你@dfd,正如我所说的几年后开始为iOS编码并且曾经是客观的c编码器,并且在类型方面也同意你的观点,这个网站上的大部分线程总结为拼写错误,但在我的情况下并非如此。我正在使用 Xcode 7.3,并创建了几个新项目,但在第二个视图控制器上再次遇到相同的问题。
  • 我们已经解决了这个问题,它可能会帮助一些人节省他的时间,它现在正在工作“通过用 DViewController 替换 UIViewController!

标签: swift uinavigationcontroller uibutton xib xcode7.3


【解决方案1】:

我们已经解决了这个问题,它可能会帮助一些人节省他的时间,它现在正在工作“通过用 DViewController 替换 UIViewController!

【讨论】:

    猜你喜欢
    • 2014-01-17
    • 2013-05-24
    • 1970-01-01
    • 2015-12-10
    • 2019-06-06
    • 1970-01-01
    • 2021-04-28
    • 2013-09-04
    • 1970-01-01
    相关资源
    最近更新 更多