8

Tôi có một chồng ba VC được điều phối thông qua bộ điều khiển điều hướng và sử dụng thanh điều hướng. Trên thanh điều hướng này, trong mỗi VC, tôi đã thêm cùng một nút (nút 'Thoát') như là một mục nút thanh phải:ios thanh điều hướng mục nút phải thay đổi khi đẩy bộ điều khiển xem mới

UIBarButtonItem *logoutButton = 
[[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"LogoutButtonTitle", @"") 
            style:UIBarButtonItemStyleBordered 
            target:self 
            action:@selector(logout)]; 

[categoriesViewController.navigationItem setRightBarButtonItem:logoutButton]; 
[[self navigationController] pushViewController:categoriesViewController animated:YES]; 

Vì vậy, mỗi bộ điều khiển xem có nút logout này trong thanh điều hướng. Khi tôi đẩy bất kỳ bộ điều khiển nào vào ngăn điều hướng, bộ điều khiển chế độ xem mới tải như mong đợi, mọi thứ được hiển thị và hoạt động chính xác, nhưng ngay sau khi bộ điều khiển chế độ xem mới được hiển thị (sau khi kết thúc hoạt ảnh) nút đăng xuất thay đổi khoảng 3px đúng.

Tôi đã thử thêm nút trước khi đẩy VC, trong các phương thức init của VC, trong viewDidLoad và viewDidAppear nhưng vẫn còn hành vi tương tự. Tôi dường như không thể loại bỏ sự thay đổi này.

Điều lạ lẫm là nút quay lại biến mất và xuất hiện trở lại khi đẩy VC mới (sử dụng hoạt ảnh mặc định) nhưng nút 'Đăng xuất' có vẻ như ở lại và chỉ chuyển sang phải sau khi hoạt ảnh kết thúc. Ngoài ra, phông chữ trên các nút không phải là phông chữ mặc định mà là một trong các phông chữ hệ thống (ánh sáng Helvetica), có thể liên quan đến điều này.

Bất kỳ ý tưởng nào về lý do điều này xảy ra?

+0

Đó là vì tôi không sử dụng phông chữ mặc định. Bằng cách nào đó, khi hiển thị nút có phông chữ khác với màn hình, khung của nó cần phải được tính toán lại - hoặc đây là phỏng đoán tốt nhất của tôi. –

+0

Tôi đang gặp vấn đề tương tự này - bạn có sửa chữa nó không? –

Trả lời

0

thử gọi

self.navigationItem.rightBarButtonItem = yourUIBarButtonItem; 

Cũng nút logout của bạn là gì, nó là lớp có đúng không? Có lẽ một chút mã nữa?

1

Tôi gặp vấn đề tương tự. Đó là do rootviewcontroller của bạn không được thiết lập. Đặt trang chính hoặc trang đầu tiên nơi thanh điều hướng đầu tiên của bạn sẽ có nguồn gốc là rootviewcontroller. Từ đó [self.navcontroller] pushviewcontroller ...].

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