【问题标题】:Change case of UIImagePickerController navigation bar itemsUIImagePickerController 导航栏项目的改变大小写
【发布时间】:2014-12-03 21:59:27
【问题描述】:

免责声明:我意识到这可能不会得到 Apple 的批准,并且我意识到遍历视图层次结构在编程上是不安全的。我是为了自己的好奇心想弄清楚的:)

我想更改 UIImagePickerController 的导航栏项目的大小写。

这适用于标题文本:

viewController.navigationItem.title = [viewController.navigationItem.title uppercaseString];

但这不适用于取消按钮(显然它不是取消按钮的正确位置,但我在视图层次结构中找不到它)。

如何更改取消按钮?

[viewController.navigationItem.rightBarButtonItems enumerateObjectsUsingBlock:^(UIBarButtonItem* btn, NSUInteger idx, BOOL *stop) {
    btn.title  = [btn.title lowercaseString];
}];

【问题讨论】:

    标签: ios objective-c uiimagepickercontroller


    【解决方案1】:

    我不知道如何访问现有的取消按钮,但您可以通过以下方式替换它:

    - (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
    {    
        // add done button to right side of nav bar
        UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] initWithTitle:@"cancel"
                                                                         style:UIBarButtonItemStylePlain
                                                                        target:self
                                                                        action:@selector(done:)];
    
        UINavigationBar *bar = navigationController.navigationBar;
        UINavigationItem *topItem;
    
        topItem = bar.topItem;
        topItem.rightBarButtonItem = cancelButton;
    }
    

    编辑:

    我想这会做你想做的事:

    - (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
    {
        for (UIView *view in navigationController.navigationBar.subviews)
        {
            if ([view isKindOfClass:[UIButton class]])
            {
                UIButton *btn = (UIButton *)view;
                [btn setTitle:[btn.titleLabel.text lowercaseString] forState:UIControlStateNormal];
            }
        }
    }
    

    【讨论】:

    • 哦,当然,这实际上就是我打算做的事情。但我想从现有按钮中获取原始字符串,以便将其全部预先本地化。
    • 啊。好吧,也许您可​​以通过添加断点并使用po [navigationController.view recursiveDescription] 来预测按钮的路径。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-01
    • 2014-10-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多