Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 自定义UIImagePickerController的导航项_Ios_Uinavigationcontroller_Uiimagepickercontroller_Uinavigationitem_Subclassing - Fatal编程技术网

Ios 自定义UIImagePickerController的导航项

Ios 自定义UIImagePickerController的导航项,ios,uinavigationcontroller,uiimagepickercontroller,uinavigationitem,subclassing,Ios,Uinavigationcontroller,Uiimagepickercontroller,Uinavigationitem,Subclassing,我正在尝试更改UIImagePickerController的导航栏按钮。到目前为止,我只成功更改了右栏按钮项(“取消”按钮): 但在其他视图控制器(例如“照片库”)中,“取消”按钮还是旧按钮。此外,在切换回主选择器视图后,自定义的“取消”按钮将再次替换为标准按钮。 有人知道如何更改这些按钮吗?子类化? 非常感谢 仅当您按下视图控制器时,才会调用您实现的方法。如果要在整个选择器中进行更改,则可以使用导航控制器的类别 谢谢你。那么我将如何实现它呢?在UINavigationController中创

我正在尝试更改UIImagePickerController的导航栏按钮。到目前为止,我只成功更改了右栏按钮项(“取消”按钮):

但在其他视图控制器(例如“照片库”)中,“取消”按钮还是旧按钮。此外,在切换回主选择器视图后,自定义的“取消”按钮将再次替换为标准按钮。 有人知道如何更改这些按钮吗?子类化?
非常感谢

仅当您按下视图控制器时,才会调用您实现的方法。如果要在整个选择器中进行更改,则可以使用导航控制器的类别

谢谢你。那么我将如何实现它呢?在UINavigationController中创建一个类别,并实现如下:实现UINavigationBar(MyNavigationBar)-(void)drawRect:(CGRect)rect{//set button here}@end您可以在UINavigationController或UINavigationBar中尝试此新类别?
- (void)navigationController:(UINavigationController *)navigationController         
       willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {

       UINavigationBar *bar = navigationController.navigationBar;
       UINavigationItem *top = bar.topItem;
       top.title = @"Photos";
       UIImage *buttonImageCancel = [UIImage imageNamed:@"DoneBarButton.png"];
       UIButton *buttonCancel = [[UIButton alloc] initWithFrame:CGRectMake(0,5,55, 29)];
       [buttonCancel setBackgroundImage:buttonImageCancel forState:UIControlStateNormal];
       [buttonCancel addTarget:self action:@selector(imagePickerControllerDidCancel:) forControlEvents:UIControlEventTouchUpInside];
       [buttonCancel setTitle:@"Cancel" forState:UIControlStateNormal];
       [buttonCancel setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
       [[buttonCancel titleLabel] setFont:[UIFont boldSystemFontOfSize:10]];
       UIBarButtonItem *barButtonCancel = [[UIBarButtonItem alloc] initWithCustomView:buttonCancel];
       [top setRightBarButtonItem:barButtonCancel];   }