2011-05-07 13 views
5

'u kullanarak programatik olarak nasıl sekme görünümü oluşturabilirim Bir iphone uygulaması için nasıl sekmeli bir görünümü programlı olarak oluşturabilirim? Bazı iyi öğretici bağlantılar veya örnekler sunarak bana yardımcı olabilir misiniz? Biz tabbar oluşturmak zorunda nasılObjective-C

cevap

9

O UITabBarController üzerinden bir UITabBar oluşturmak için oldukça basit olduğunu. Aşağıdaki örnek, AppDelegate sınıfınızda çalışmalıdır.

App Delege Arabirimi

Öncelikle, arayüz içinde, bizim UITabBarController tanımlayacağız.

UITabBarController *tabBarController; 

App Delege Uygulama

Ardından, uygulama dosyanın application:didFinishLaunchingWithOptions: yöntemi içinde, biz o zaman bizim sekme çubuğu denetleyicisi initialize edeceğiz.

// Initialise our tab bar controller 
UITabBarController *tabBarController = [[UITabBarController alloc] init]; 

Ardından, sekme çubuğu denetleyicisine eklemek istediğiniz görünüm denetleyicilerini oluşturmanız gerekir. Sekmenin başlığını/simgesini ayarlamak için bunlara bazı bilgiler eklememiz gerekecek, ancak sonunda buna geri döneceğim. setViewControllers olarak

// Create your various view controllers 
UIViewController *testVC = [[TestViewController alloc] init]; 
UIViewController *otherVC = [[OtherViewController alloc] init]; 
UIViewController *configVC = [[ConfigViewController alloc] init]; 

: animasyonlu: yöntemi görünümü denetleyicileri bir dizi gerektirdiğinden, bir diziye bizim görünümü denetleyicileri ekleyin ve sonra onları serbest olacak. (NSArray olarak onları korur.)

// Put them in an array 
NSArray *viewControllers = [NSArray arrayWithObjects:testVC, otherVC, configVC, nil]; 
[testVC release]; 
[otherVC release]; 
[configVC release]; 

Sonra sadece görünüm denetleyicilerin dizisi ile UITabBarController sunmak ve pencereye ekleyin.

// Attach them to the tab bar controller 
[tabBarController setViewControllers:viewControllers animated:NO]; 

// Put the tabBarController's view on the window. 
[window addSubview:[tabBarController view]];  

Son olarak, dealloc yöntemi içinde [tabBarController release]; çağrı emin olun.

// Create our tab bar item 
UITabBarItem *tabBarItem = [self tabBarItem]; 
UIImage *tabBarImage = [UIImage imageNamed:@"YOUR_IMAGE_NAME.png"]; 
[tabBarItem setImage:tabBarImage]; 
[tabBarItem setTitle:@"YOUR TITLE"]; 
+0

Kendi tabBarControllers programlı olarak oluştururken, her bir sekme için her zaman bir navigationController oluşturur ve her navigationController bir rootViewController ile başlatılır. Bana öyle geliyor ki, örneğinizde navigasyon yığını olmadığından navigasyon yığını oluşturmak mümkün değil, ama bunu hiç kodlamayı denemedim. –

+0

@Wolfgang Sanırım öğeleri gezinme yığınına itip itmek isteyip istemediğinize bağlı. (Benim örneğim oldukça basit bir "sadece temel" yaklaşımıdır.) –

+0

thnx gerçekten çok çalışıyor – Kiran

0

Bu programlama

UINavigationController *BandNavigationController3; 
AudienceSettingsViewController *audienceSettingsViewView =[[AudienceSettingsViewController alloc]initWithNibName:@"AudienceSettingsViewController" bundle:nil]; 
BandNavigationController3 = [[UINavigationController alloc]initWithRootViewController:audienceSettingsViewView]; 
BandNavigationController3.tabBarItem.title = @"Settings"; 
BandNavigationController3.tabBarItem.image = [UIImage imageNamed:@"settings.png"]; 

[BandNavigationController3.tabBarItem initWithTabBarSystemItem:UITabBarSystemItemFavorites tag:4]; 
BandNavigationController3.navigationBar.hidden = YES; 

[bandTabBarArray addObject:BandNavigationController3]; 
[BandNavigationController3 release]; 
[audienceSettingsViewView release]; 

[tabBarController setViewControllers:bandTabBarArray]; 
[bandTabBarArray release]; 
+0

-1 A: aşağıdaki gibi

View Controller Uygulama görünümünüzü kontrolörlerinin her İçinde

, ayrıca init yöntemi içinde sekme için başlık ve simge ayarlamak isteyeceksiniz kötü biçimlendirilmiş kopyalama ve yapıştırma işi açıklama yok. –