2012-07-10 42 views

Trả lời

9

Phương pháp dễ dàng hơn so với phân lớp navbar nhưng cùng một ý tưởng;

for(UIView *temp in self.navigationController.navigationBar.subviews) 
{ 
    [temp setExclusiveTouch:YES]; 
} 

Đặt ngay sau khi bạn thêm các mục nút thanh của mình.

6

Tôi đã quản lý vấn đề này bằng cách phân lớp UINavigationBar và ghi đè bố cụcSubviews. Một cái gì đó như thế này:

- (void)layoutSubviews { 
    [super layoutSubviews]; 
    for (UIView *view in self.subviews) { 
     view.exclusiveTouch = YES; 
    } 
} 
-2

này không làm việc cho UIBarButtonItem tạo sử dụng initWithTitle

+0

những gì không hoạt động? đây không phải là nhận xét về bài đăng của người khác phải không? –

0

Trong iOS 7 nó không được làm việc. Tôi đã sử dụng phương pháp này để thử sửa nó.

for(UIView *temp in self.navigationController.navigationBar.subviews){ 
    [temp setExclusiveTouch:YES]; 
    for(UIView *temp2 in temp.subviews){ 
     [temp2 setExclusiveTouch:YES]; 
    } 
} 
3

Nạo vét quá khứ Tôi xin lỗi. Tôi tình cờ gặp điều này và hy vọng có một cách tốt hơn là lặp qua các cuộc phỏng vấn.

tôi thấy rằng những điều sau đây làm cho UIBarButtonItems độc quyền:

[self.navigationController.navigationBar setExclusiveTouch:YES]; 

iOS7 có thể đã thực hiện liên lạc độc quyền thừa hưởng.

+1

Nó không hiệu quả với tôi. Tôi đang chạy trên iOS7. – Qiusheng

+0

Điều này cũng không hoạt động trong iOS 8. –

Các vấn đề liên quan