在 UIImagePickerController 内的 UIBarButton 上添加系统摄像头
Adding System Camera on UIBarButton inside UIImagePickerController
如果您熟悉 .PhotoLibrary
的 UIImagePickerController
屏幕,右侧有一个取消按钮。在左侧,我想添加一个可以在 XCode 库中找到的相机图标。
我的代码不起作用。
let picker = UIImagePickerController()
picker.delegate = self
picker.sourceType = .PhotoLibrary
picker.allowsEditing = true
let camera = UIBarButtonItem(barButtonSystemItem: .Camera, target: picker, action: Selector("btnOpenCamera"))
picker.navigationItem.leftBarButtonItem = camera
presentViewController(picker, animated: true, completion: nil)
它可能会在代码执行期间将 navigationItem 重置为其他地方(例如在 viewDidLayoutSubviews 中)。
你可以尝试继承UIImagePickerController并重新实现
func viewWillAppear(animated:Bool) {
super.viewWillAppear(animated)
let camera = UIBarButtonItem(barButtonSystemItem: .Camera, target: , action:self Selector("btnOpenCamera"))//you can handle this with delegate if you want
self.navigationItem.leftBarButtonItem = camera
}
而不是使用继承的 class 而不是标准的 UIImagePickerController。希望对你有帮助。
参考这个post,从objective C解释为Swift。
我找到了问题的解决方案。此方法将在加载的视图控制器中执行我需要的任何自定义。
func navigationController(navigationController: UINavigationController, willShowViewController viewController: UIViewController, animated: Bool) {
let camera = UIBarButtonItem(barButtonSystemItem: .Camera, target: self, action: Selector("btnOpenCamera"))
viewController.navigationItem.leftBarButtonItem = camera
}
如果您熟悉 .PhotoLibrary
的 UIImagePickerController
屏幕,右侧有一个取消按钮。在左侧,我想添加一个可以在 XCode 库中找到的相机图标。
我的代码不起作用。
let picker = UIImagePickerController()
picker.delegate = self
picker.sourceType = .PhotoLibrary
picker.allowsEditing = true
let camera = UIBarButtonItem(barButtonSystemItem: .Camera, target: picker, action: Selector("btnOpenCamera"))
picker.navigationItem.leftBarButtonItem = camera
presentViewController(picker, animated: true, completion: nil)
它可能会在代码执行期间将 navigationItem 重置为其他地方(例如在 viewDidLayoutSubviews 中)。
你可以尝试继承UIImagePickerController并重新实现
func viewWillAppear(animated:Bool) {
super.viewWillAppear(animated)
let camera = UIBarButtonItem(barButtonSystemItem: .Camera, target: , action:self Selector("btnOpenCamera"))//you can handle this with delegate if you want
self.navigationItem.leftBarButtonItem = camera
}
而不是使用继承的 class 而不是标准的 UIImagePickerController。希望对你有帮助。
参考这个post,从objective C解释为Swift。
我找到了问题的解决方案。此方法将在加载的视图控制器中执行我需要的任何自定义。
func navigationController(navigationController: UINavigationController, willShowViewController viewController: UIViewController, animated: Bool) {
let camera = UIBarButtonItem(barButtonSystemItem: .Camera, target: self, action: Selector("btnOpenCamera"))
viewController.navigationItem.leftBarButtonItem = camera
}