2010-04-19 15 views
7

Kullanıcı girdisini temel alan bir veya daha fazla çubuk öğesini devre dışı bırakan bir sekme çubuğu ile basit bir uygulamanız var. Anlamaya çalıştığım bir UITabBarDelegate kullanmam gerektiğini anlıyorum. Ancak temsilci yöntemini çağırdığımda yakalanmamış bir özel durum hatası alıyorum [NSObject doesNotRecognizeSelector]. Bunu doğru yaptığımı veya bir şeyleri kaçırmadığımdan emin değilim. Baska öneri.iPhone'un nasıl etkinleştirileceği veya devre dışı bırakılacağı hakkında UITabBar

Şimdi ne var ise şu:

alıyorum
WMViewController.h 

#import <UIKit/UIKit.h> 

#define kHundreds 0 

@interface WMViewController : UIViewController <UITabBarDelegate, UIPickerViewDelegate, UIPickerViewDataSource>{ 

} 

@end 

WMViewController.m 

#import "WMViewController.h" 
#import "MLDTabBarControllerAppDelegate.h" 

@implementation WMViewController 

- (IBAction)finishWizard{ 
    MLDTabBarControllerAppDelegate *appDelegate = (MLDTabBarControllerAppDelegate *)[[UIApplication sharedApplication] delegate]; 
    [appDelegate setAvailabilityTabIndex:0 Enable:TRUE]; 


} 

MLDTabBarControllerAppDelegate.h 
#import <Foundation/Foundation.h> 


@interface MLDTabBarControllerAppDelegate : NSObject <UITabBarDelegate>{ 

} 

- (void) setAvailabilityTabIndex: (NSInteger) index Enable: (BOOL) enable; 

@end 


MLDTabBarControllerAppDelegate.m 

#import "MLDTabBarControllerApplicationDelegate.h" 
#import "MyListDietAppDelegate.h" 


@implementation MLDTabBarControllerAppDelegate 

- (void) setAvailabilityTabIndex: (NSInteger) index Enable: (BOOL) enable 
{ 
UITabBarController *controller = (UITabBarController *)[[[MyOrganizerAppDelegate getTabBarController] viewControllers ] objectAtIndex:index]; 

[[controller tabBarItem] setEnabled:enable]; 
} 

@end 

üzerinde iyi denetleyici nesne ancak kilitlenme olması ne görünür [[kontrolör tabBarItem] setEnabled: etkinleştirmek]; Ben ne eksik

...

herhangi bir öneriniz

sayesinde

cevap

3

Sen

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController 

özellikle UITabBarControllerDelegate uygulamak gerekir ve bu viewControllers için HAYIR dönmek olduğunu devre dışı bırakılmalıdır.

26
// Disable  
UITabBarController.tabbar.userInteractionEnabled = NO; 

// Enable 
UITabBarController.tabbar.userInteractionEnabled = YES; 
0

Üst görüntüleme denetleyicisini de seçerek sekme çubuğu denetleyicisini seçebilirsiniz. Bunu herhangi bir delegeyi uygulama gereği duymadan yaptım.

self.parentViewController.tabBarController.tabBar.userInteractionEnabled = NO; 
3

self.tabBarController?.tabBar.userInteractionEnabled = false hızlı

bunu yapacak
İlgili konular