首先先创建一个类
Number
@interface Number : NSObject
{
NSNumber *badgeValue_number; //属性
}
@end
YcwAppDelegate.h文件内
@property (retain, nonatomic)Number *ycwNumber;
YcwAppDelegate.m文件内
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]];
YcwViewController *view = [[YcwViewController alloc]initWithNibName:@"YcwViewController" bundle:nil];
YcwSecondViewController *secondView = [[YcwSecondViewController alloc]initWithNibName:@"YcwSecondViewController" bundle:nil];
YcwThirdViewController *thirdView = [[YcwThirdViewController alloc]initWithNibName:@"YcwThirdViewController" bundle:nil];
NSArray *array_controllers =[NSArray arrayWithObjects:view,secondView,thirdView, nil];
UITabBarController *tabBarController = [[UITabBarController alloc]init];
tabBarController.viewControllers = array_controllers;
self.window.rootViewController = tabBarController;
[self.window makeKeyAndVisible];
self.ycwNumber = [[Number alloc]init];
return YES;
}
创建一个视图YcwViewController 添加一个button事件
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
self.tabBarItem.title = @"first";
self.tabBarItem.image = [UIImage imageNamed:@"111.png"];
}
return self;
}
- (IBAction)buttonAction:(id)sender {
int i = [[delegate.ycwNumber valueForKey:@"badgeValue_number"] intValue];
i = i+1;
[delegate.ycwNumber setValue:[NSNumber numberWithInt:i] forKey:@"badgeValue_number"];
}
创建一个视图YcwThirdViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
self.tabBarItem.title = @"third";
self.tabBarItem.image = [UIImage imageNamed:@"333.png"];
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
delegate = [[UIApplication sharedApplication]delegate];
[delegate.ycwNumber addObserver:self forKeyPath:@"badgeValue_number" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:NULL];
}
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if ([keyPath isEqualToString:@"badgeValue_number"]) {
self.tabBarItem.badgeValue = [NSString stringWithFormat:@"%@",[delegate.ycwNumber valueForKey:@"badgeValue_number"]];
}
}