2015-06-29 19 views
7

Tôi cố gắng để thêm một nút thanh Ngay trong thanh tabbar tôi navigationbar, và làm việc của nó tốt trong iphone 5 và thiết bị 5s và tất cả các mô phỏng. Nhưng nó không hiển thị trong iphone 6 và 6+ device.However làm việc tốt của nó trên giả lập của iphone 6 và 6+.nút thanh phải không xuất hiện trong iphone 6 và 6 +

Đây là mã nút.

@property (nonatomic, weak) UIButton *rightButton; 



-(void)setNavigationBarRightButton 
{ 


    rightButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
    rightButton.frame = CGRectMake(0, 0, 40, 40); 
    rightButton.layer.cornerRadius = 20; 
    rightButton.layer.borderColor = [[UIColor lightGrayColor] CGColor]; 
    rightButton.layer.borderWidth = 2; 
    rightButton.imageView.layer.cornerRadius = 20; 
    rightButton.clipsToBounds = YES; 




    UIImage* image; 

    NSData* imageData = [[NSUserDefaults standardUserDefaults] objectForKey:@"image"]; 


    if (imageData == (id)[NSNull null] || imageData.length == 0) { 
     NSLog(@"image data is %@",imageData); 
     image = [UIImage imageNamed:@"defaultIcon.png"]; 
    } 
    else { 
     image = [UIImage imageWithData:imageData]; 

    } 

    // rightButton.imageView.image = image; 
    [rightButton setBackgroundImage:image forState:UIControlStateNormal]; 

    [rightButton addTarget:self action:@selector(onClickrighttButton:) forControlEvents:UIControlEventTouchUpInside]; 
    UIBarButtonItem *rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:rightButton]; 

    self.tabBarController.navigationItem.rightBarButtonItem = rightBarButtonItem; 




} 

- (void)onClickrighttButton:(id)sender 
{ 
    NSLog(@"clicked"); 

} 

Bạn có thể nhìn thấy trong hình cũng enter image description here

Cũng là một hình ảnh rõ ràng về iphone 6 enter image description here

Xem có thậm chí không giữ chỗ xuất hiện như là nút có đường viền của 2.

+0

Bạn đã cố gắng xóa sạch dự án và có thể là dữ liệu có nguồn gốc? – Templar

+0

Bạn không nên giữ một tham chiếu yếu. Hãy thử '@property (nonatomic) UIButton * rightButton;' – Desdenova

+0

Tắt đầu của tôi, tôi nghĩ bạn nên đặt nó trên chính bộ điều khiển xem, không phải là bộ điều khiển thanh tab. Hoặc là hệ thống phân cấp của bạn thực sự Nav> Tab> Nội dung? –

Trả lời

1

1) Nếu bạn đang sử dụng Autoresizing Sub-Mask kiểm tra xem bạn đã thiết lập các 'Autoresizing Mask' đúng cách, [kiểm tra trong Preview].

2) Nếu bạn đang sử dụng lớp Kích thước thì hãy đảm bảo về các ràng buộc bạn đã đặt, [Kiểm tra xem trước].

3) Điều thứ hai nếu nó không làm việc bằng cách nào và bạn đang ở trong vội vàng, Đơn giản chỉ cần sử dụng xem tiêu đề tùy chỉnh của bạn thay vì thanh điều hướng với các nút tùy chỉnh ở bên phải và bên trái.

+0

hoạt ảnh sẽ không hoạt động thêm tiêu đề tùy chỉnh. –

0

Sử dụng mã bên dưới.

UIImage* searchImage = [UIImage imageNamed:@"search.png"]; 
CGRect searchFraming = CGRectMake(30, 30, 25, 26); 
UIButton *searchButton = [[UIButton alloc] initWithFrame:searchFraming]; 
[searchButton setBackgroundImage:searchImage forState:UIControlStateNormal]; 
[searchButton addTarget:self action:@selector(searchButtonClicked) 
      forControlEvents:UIControlEventTouchUpInside]; 
[searchButton setShowsTouchWhenHighlighted:YES]; 
UIBarButtonItem *searchButtonBarItem =[[UIBarButtonItem alloc] initWithCustomView:searchButton]; 
[self.navigationItem setRightBarButtonItems:[NSArray arrayWithObjects:locationButtonBarItem ,nil]]; 
+0

Cảm ơn nó làm việc cho tôi hoàn hảo. –

0

Bạn có thể sử dụng xem gỡ lỗi (Gỡ lỗi Chế độ xem phân cấp) để kiểm tra, nơi nút của bạn biến mất. Chỉ cần nhấp vào biểu tượng thiết bị ở đầu khu vực gỡ lỗi/đăng nhập của bạn

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