2011-07-31 23 views
6

Tôi có UIView có UITabBar với 4 thành phần UITabBarItem trong đó (tất cả được tạo từ IB).Làm cách nào để bạn kết nối mục thanh tab với một hành động?

Tôi muốn hàm IBAction được gọi khi ai đó nhấp vào các mục trong thanh tab. Nhưng tôi không thể kết nối tabbaritem với hành động của tôi thông qua IB ... Tôi kiểm soát kéo từ "hành động nhận được" nhưng nó không cho phép tôi kết nối với tabbaritem.

Cảm ơn Deshawn

Trả lời

5

Nó không phải là rõ ràng từ câu hỏi của bạn nếu bạn cũng xác định một UITabBarController.

Nếu bạn không (như tôi giả sử, nếu không nhấp vào một mục thanh tab nên có tác dụng nếu bạn đã định nghĩa một cách chính xác mọi thứ trong IB), con đường để đi là gán một UITabBarDelegate để UITabBar của bạn và xác định tabBar:didSelectItem:

Có xem xét số reference for UITabBarDelegate

+0

Hi ... giao diện của tôi trông như thế này: @ interface MapViewController: UIViewController DeShawnT

14

Điều khiển kéo thanh tabbar của bạn vào "Chủ sở hữu tệp" trong IB và đặt làm đại biểu. Tiếp theo thả mã này vào tệp viewcontroller.m của bạn:

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item 
{ 
    if(item.tag == 0) 
    { 
     //party like its 1999 right here 
    } 
} 

Quay lại IB và đặt từng mục tab tab trong thanh tab của bạn bằng thẻ. Bạn phải thử nghiệm cho từng trường hợp trong didSelectItem của bạn, vì vậy nếu bạn có nhiều hơn một bộ thẻ khác nhau, vv Thats cách tôi đã làm nó anyway.

+1

này nghe có vẻ như các dẫn hứa hẹn nhất đối với tôi, nhưng mà quái gì này "chủ sở hữu của tập tin" bạn đang nói về Tôi không thấy nó ở đâu cả. – Lev

0

Bạn không thể đặt hành động mục tiêu cho các mục trong tab của mình. Họ phải luôn có một cái nhìn mới. Cách duy nhất là - bạn nên sử dụng các đại biểu xác định rằng mục tabbar của bạn được chạm và sau đó xử lý tab nào được nhấn trong đại biểu đó.

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item 
{ 
    if(item.tag == 1) 
    { 
    } 
} 

Bạn nên đặt giá trị thẻ cho mục thanh tab của mình từ các thuộc tính trong xcode.

+1

Xin chào! Điều gì sẽ xảy ra nếu một người muốn hành động "Chạm xuống" được nhận diện trên một mục TabBar (Thay vì hành động "đã chọn")? Làm thế nào sẽ được thực hiện? – BadmintonCat

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