如何得到导航栏右按钮

用于UIBarButtonItem不再是UIView,而是UIController,所以它没有view属性,因此也就没有frame属性,这给程序员查找导航按钮坐标带来困难。

下面是一种查找导航栏右按钮所在的view的方法,从此view中你可以得到按钮的frame。

// 用遍历subviews的方法找到右导航按钮

-(UIView*)findRightBarItemView:(UINavigationBar*)navbar{    
    UIView* rightView = nil;
    for (UIView* v in navbar.subviews) {
        if (rightView==nil) {
            rightView = v;
        } else if (v.frame.origin.x > rightView.frame.origin.x) {
            // 对subviews的x坐标进行升序排序,最大的一个显然就是右按钮
            rightView = v;
        }
    }
    return rightView;
}

你可能感兴趣的:(UIView)