- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我创建了一个名为 Main.storyboard 的 Storyboard,并创建了一个 Storyboard ID 为“addBtnVC”的 AddBtnViewController。在 App Delegate 中,我以编程方式初始化了一个带有三个 View Controller 的选项卡栏。对于其中一个选项卡栏 View Controller ,我创建了一个添加按钮,该按钮将以编程方式转换为 AddBtnViewController。但是,我收到此错误:
uncaught exception 'NSInvalidArgumentException', reason: '-[_.AppDelegate add:]: unrecognized selector sent to instance 0x7f91cb422a30'
我的代码:
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
//Make add btn for View Controller 1 of Navigation Bar
let addBtn = UIButton(frame: CGRectMake(0, 0, 30, 30))
addBtn.addTarget(self, action: #selector(ViewController1.add), forControlEvents: .TouchUpInside)
let rightBarButton = UIBarButtonItem()
rightBarButton.customView = addBtn
NavController.navigationBar.topItem?.rightBarButtonItem = rightBarButton
return true
}
}
class ViewController1: UIViewController {
let addBtnVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("addBtnVC")
func add(sender: UIButton!) {
if let addBtnVC = storyboard!.instantiateViewControllerWithIdentifier("addBtnVC") as? AddBtnViewController {
presentViewController(addBtnVC, animated: true, completion: nil)
}
}
}
如何修复此错误?
为了后代:
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
let VC1 = UIViewController()
//Make add btn for View Controller 1 of Navigation Bar
let addBtn = UIButton(frame: CGRectMake(0, 0, 30, 30))
addBtn.addTarget(VC1, action: #selector(VC1.add(_:)), forControlEvents: .TouchUpInside)
let rightBarButton = UIBarButtonItem()
rightBarButton.customView = addBtn
NavController.navigationBar.topItem?.rightBarButtonItem = rightBarButton
return true
}
}
class ViewController1: UIViewController {
let addBtnVC:AddButtonViewController = AddButtonViewController()
func add(sender: UIButton!) {
let navController = UINavigationController(rootViewController: addBtnVC)
navController.navigationBar.tintColor = colorPalette.red
self.presentViewController(navController, animated: true, completion: nil)
}
}
最佳答案
您将按钮操作的目标 设置为代表AppDelegate 类的self
。
按钮操作的选择器 必须与目标属于同一类,但事实并非如此。这就是错误消息所说的。此外,选择器的签名是错误的,因为它只接受一个参数。
关于ios - 由于未捕获的异常 'NSInvalidArgumentException' 终止应用程序,原因 : '-[_. AppDelegate 添加:]:无法识别的选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39196855/
我只有一个 Objective-C 项目,我想使用 AppDelegate 访问我的 xcdatamodel,但是当我将 AppDelegate.swift 添加到我的项目时,它显示了一个编译问题,它
我正在编写一些代码。 import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate, XP
我们可以通过这些方式使用 AppDelegate 的对象... 1) AppDelegate *app; // Globally declared app = (AppDelegate*)[[UIAp
我有一个像往常一样有 AppDelegate 的应用程序。我有一个 AppDelegate 的扩展,像这样: extension AppDelegate { func doSomething(
我的 appDelegate 中有两种类型的 var:int 和 NSMutableArray我可以访问 viewController 中的 int var,但无法访问 NSMutableArray
我创建了一个新项目并想将 App Delegate 从 AppDelegate 重命名为 FlickrAppDelegate。我想我在适当的地方重命名并且能够构建但我收到以下错误: 它构建正常,但显然
我正在尝试使用名为 AWSAppSync 的适用于 iOS 的 Amazon Web Serivces SDK。我发现good instructions for Swift 。我将尝试使问题更普遍地适
我在尝试设置自动登录功能时遇到问题。 我之前对根 ViewController 进行了一些研究,发现我现在需要使用 SceneDelegate 来实现自动登录功能,而不是使用 AppDelegate。
我注意到在默认使用 ARC 的最新版本的 Xcode 中,当您开始一个新项目时 Xcode 为您生成的 main.m 文件使用 NSStringFromClass([AppDelegate class
AppDelegate 它继承UIResponder , 并且实现了UIApplicationDelegate协议 。UIApplicationDelegate 协议中定义了很多app不同状态下触发的
当我将以下覆盖添加到 AppDelegate 时: public override void HandleAction(UIApplication application, string action
我正在设计一个相当大的应用程序,启动时它将与几个不同的服务器创建 session 。由于他们正在创建一个在应用程序的所有部分中使用的 session ,因此我认为在应用程序委托(delegate)中最
Xcode 中给出的 AppDelegates 方法到底是什么?我的应用程序中有很多类(class)。现在我想要的是我有 AudioStreamer 类,并且我必须在大多数其他类中使用该类...并且我
我没有整天都碰过AppDelegate.h文件,突然我收到3个错误... // AppDelegate.h #import //!Expected selector for Objective-
我知道没有必要保留委托(delegate),以避免保留循环。我在一次采访中碰巧遇到了一个问题,“如果保留了 appDelegate 会怎样?”。我对此没有答案,并根据我的知识在这里寻求答案。谢谢 最佳
我正在快速制作一个应用程序,但我遇到了一些问题。我正在尝试运行我的应用程序,但每次都会出现错误。 这是完整的错误: *** 由于未捕获的异常“NSUnknownKeyException”而终止应用程序
- (void)applicationDidFinishLaunching:(UIApplication *)application { NSError *error = nil;
在AppDelegate.h我创建了以下属性, @property (strong, nonatomic) NSMutableDictionary *googleUserDetailsDictiona
我正尝试按照 Ray Wenderlichs 教程在 cocos2d 游戏中使用 UIKit:How To Integrate Cocos2D and UIKit 但是我卡在了这一点上: Then,
我正在开发一个使用 CoreLocation 来管理 iBeacon 的 iOS 应用程序。我在 AppDelegate 和 ViewController 中都有 Beacon 检测,但我希望 App
我是一名优秀的程序员,十分优秀!