2009-07-11 44 views
5

Thông qua Trình tạo giao diện Tôi có khả năng thay đổi Mã định danh của UIBarButtonItem thành một cái gì đó như "Thêm" (hoặc "Hoàn tác", "Làm lại", v.v ...). Điều này mang lại cho nút của tôi một hình ảnh "+" đẹp.Lập trình thay đổi thuộc tính định danh của UIBarButtonItem

Làm cách nào tôi có thể đặt chương trình này theo cách lập trình? UIBarButtonItem không chấp nhận một thông báo "setIdentifier".

Trả lời

6

Sau khi được xây dựng, "Số nhận dạng" của UIBarButtonItem không thể sửa đổi được. Tuy nhiên, giao diện người dùng có thể được thay đổi bằng cách thay thế nút bằng một biến thể được lập trình được xây dựng. Ví dụ:

UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd 
                      target:self 
                      action:@selector(doAddAction:)]; 
+10

Tiêu đề của bạn cho bài đăng này là gây hiểu nhầm. Điều này không thay đổi mã định danh của UIBarButtonItem, nó chỉ tạo một mã định danh mới với thuộc tính định danh được khởi tạo. Tôi đang tìm cách sửa đổi số nhận dạng trên nút hiện có. Một tiêu đề tốt hơn sẽ là "Thiết lập thuộc tính định danh của một UIBarButtonItem mới được tạo lập trình" hoặc một cái gì đó tương tự. – Senseful

+2

Tôi xin lỗi vì bạn đã vấp phải giải pháp của tôi và nó không đáp ứng được kỳ vọng của bạn. Tại thời điểm đặt câu hỏi tôi đang tìm kiếm một cách để, trên thực tế, thay đổi nó. Giải pháp làm việc cho tôi - nếu nó không cho bạn thì tôi xin lỗi. – rein

2

Nếu bạn muốn một nút phong cách: giáp và nhận dạng: máy ảnh sử dụng

UIBarButtonItem *btn; 
btn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:@selector(shotAction:)]; 
btn.style=UIBarButtonItemStyleBordered; 
0

Khi UIBarButtonItem được tạo ra, không có cách nào để thay đổi nhận dạng. Tuy nhiên, bạn có thể tạo UIBarButtonItem mới để thay thế UIBarButtonItem cũ

UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction 
                   target:self 
                   action:@selector(buttonClickedAction:)]; 

self.navigationItem.rightBarButtonItem = barButton; 
Các vấn đề liên quan