2015-03-26 12 views
13

Tôi có chế độ xem có nguồn gốc từ UIViewControler (không phải UITabBarController). Trong chế độ xem này, tôi đã thêm một thanh tab với một số mục tab. Tôi đã sử dụng UITabBarDelegate để cho phép chế độ xem thực hiện điều gì đó khi người dùng chạm vào từng mục trên tab.Chọn mục tab tab theo chương trình (không sử dụng UITabBarController)

class MyViewController: UIViewController, UITabBarDelegate { 

    func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem!) { 
     // do something 
    } 
} 

Câu hỏi của tôi là cách chúng tôi có thể chọn mục tab đầu tiên khi lần xem được tải lần đầu tiên? Lưu ý rằng tôi muốn mục tab đầu tiên ở trạng thái "hoạt động".

Một lần nữa, tôi không sử dụng UITabBarController

Cảm ơn

Trả lời

27
[tabBar setSelectedItem: [tabBar.items objectAtIndex:0]]; 

nào trong nhanh chóng, tôi nghĩ rằng sẽ là:

tabBar.selectedItem = tabBar.items![0] as UITabBarItem 
+1

Cảm ơn Foster. Tôi thực sự phải viết mã này: 'tabBar.selectedItem = tabBar.items! [0] như UITabBarItem' Tuy nhiên, tôi muốn mô phỏng sự kiện" nhấn "trên tab đầu tiên. Điều đó có thể không? – tala9999

+0

Tôi không chắc chắn ý của bạn là gì. Bạn có nói rằng phương thức ủy nhiệm tabBar (_: didSelectItem :) không được gọi khi bạn thực hiện tabBar.selectedItem = tabBar.items! [0] như là UITabBarItem? –

+0

Có. Đó là điều tôi muốn nói. Mã đó chỉ thiết lập tab là "hoạt động" và không kích hoạt 'tabBar (_: didSelectItem:)' – tala9999

2

Trong nhanh chóng nếu thanh tabbar được sử dụng thiết lập mặc định không tabbarcontroller chọn

var tabbar:UITabBar?//if declare like this 

tabbar!.selectedItem = self.tabbar!.items![0] as? UITabBarItem 

hoặc

let tabbar = UITabBar()//if declare and initilize like this 

tabbar.selectedItem = self.tabbar.items![0] as? UITabBarItem 
0

Trước khi chọn mục hoạt động thanh tab về sự kiện viewDidLoad

[self.tabBar setSelectedItem: [self.tabBar.items objectAtIndex: 0]];

1

Swift 3:

tabBarController.selectedIndex = 0 // (or any other existing index) 
Các vấn đề liên quan