删除UIImagePickerController中的取消按钮?

时间:2012-01-03 05:15:18

标签: iphone objective-c ios5 uiimagepickercontroller

我正在开发ios 5的应用程序。 我需要删除UIImagePickerController上的取消按钮我在论坛上搜索了这个问题,但没有得到确切的答案有人可以帮我这个吗?

7 个答案:

答案 0 :(得分:2)

那是因为无法删除该取消按钮。这是一个内置函数,你无法进行相同的更改。

答案 1 :(得分:1)

我会给出实现这个目标的最佳方法:

  • 首先创建UiImagePickerController的子类
  • 子类中的
  • 响应UINavigationBarDelegate方法
    - (BOOL)navigationBar:(UINavigationBar *)navigationBar shouldPushItem:(UINavigationItem *)item

你不需要做任何事情,比如设置委托或添加协议,只需覆盖自定义UIImagePcikerController中的方法。

  • 在此方法中返回NO取消项目(这是第一个)

答案 2 :(得分:0)

我用ELCImagePickerController

完成了这项工作

答案 3 :(得分:0)

无法仅删除取消按钮。 UIImagePickerController公开了一个名为showCameraControls的属性,该属性将使用取消按钮和相机按钮隐藏底栏,以及闪光灯,HDR和翻转相机的控件,为您提供相机预览。

如果您想在没有取消按钮的情况下提供体验,则必须创建所需内容的相机叠加视图。

假设您有调用UIImagePickerController的代码,您可以关闭这样的相机控件:

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
[imagePicker setShowsCameraControls:NO];

假设你在没有取消按钮的情况下用自己的视图覆盖它,你会添加它(假设你有一个名为cameraOverlay的UIView:

[imagePicker setCameraOverlayView:cameraOverlay];

答案 4 :(得分:0)

这会隐藏导航栏本身以及CancelTitle

    let videoPicker = UIImagePickerController()
    for view in videoPicker.view.subviews {
        if let navBar = view as? UINavigationBar {
            navBar.isHidden = true
        }
    }

如果您想单独删除取消按钮,请深入了解navBar

答案 5 :(得分:0)

快速版本,兼容4 +

要删除导航栏:

LOAD DATA INPATH '/your/hdfs/path' into table <table name>;

仅用于删除按钮:

imagePicker.view.subviews
            .filter { $0.isKind(of: UINavigationBar) }
            .map { $0.isHidden = true }

Voilà

答案 6 :(得分:-1)

当您呈现UIImagePickerView时,请尝试输入以下代码

for (UIView *subview in view.subviews) {
    NSLog(@"subviews=%@",subview);
    NSString *className = [NSString stringWithFormat:@"%@", [subview class]];
}

通过上面的代码,您可以获得用于显示取消按钮的导航控制器..一旦您获得navigationController将其左侧按钮设置为nil ..

我没有使用它,但希望它对你有所帮助