让AppDelegate遵守UITabBarControllerDelegate 协议
在
XSAppDelegate.m 中的
- (BOOL)application:(
UIApplication *)application didFinishLaunchingWithOptions:(
NSDictionary *)launchOptions
方法中
创建
UITabBarController 的实例,并将实例的代理设置成AppDelegate
UITabBarController *tabController = [[
UITabBarController
alloc]
init];
//
将
appdelegates
实例作为
tabController
代理
tabController. delegate = self;
tabController. delegate = self;
在XSAppDelegate.m 中 实现协议中的代码
#pragma mark -UITabBarControllerDelegate
// 是否允许选择不同 item 触发后续操作, YES 允许, NO 不允许
- ( BOOL )tabBarController:( UITabBarController *)tabBarController shouldSelectViewController:( UIViewController *)viewController
{
NSLog ( @"hello" );
return YES ;
}
// 每次点击 tabBarItem 后触发这个方法 ( 只有点击标签栏中的五个按钮才会触发, MORE 里边的不会触发 )
- ( void )tabBarController:( UITabBarController *)tabBarController didSelectViewController:( UIViewController *)viewController
{
NSLog ( @"%@!" ,viewController. title );
}
// 当点击 moreNaviegationController 中的编辑按钮时触发的方法
- ( void )tabBarController:( UITabBarController *)tabBarController willBeginCustomizingViewControllers:( NSArray *)viewControllers
{
NSLog ( @"biaji" );
}
// 当点击完成按钮的时候,触发此方法
//changed : 标记 viewController 的顺序是否改变
//ViewControllers 返回最新的 tabBarController 中 viewControllers
- ( void )tabBarController:( UITabBarController *)tabBarController willEndCustomizingViewControllers:( NSArray *)viewControllers changed:( BOOL )changed NS_AVAILABLE_IOS (3_0)
{
if (changed)
{
NSLog ( @"change@" );
}
else
{
NSLog ( @"not change" );
}
for ( UIViewController *vc in viewControllers)
{
NSLog ( @"%@" ,vc. title );
}
}