如何符合UITabBarControllerDelegate

4th*_*ace 6 iphone cocoa-touch objective-c uitabbarcontroller

我有一个基于tabbar的应用程序,并执行以下操作以获取对应用程序委托的引用:

MyAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
Run Code Online (Sandbox Code Playgroud)

然后给出了这个警告:

warning: type 'id <UIApplicationDelegate>' does not conform to the 'UITabBarControllerDelegate' 
Run Code Online (Sandbox Code Playgroud)

我的应用程序委托标题如下所示:

#import <UIKit/UIKit.h>

@interface MyAppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate>     {
UIWindow *window;
UITabBarController *tabBarController;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController;

@end
Run Code Online (Sandbox Code Playgroud)

.m文件中唯一的方法是applicationDidFinishLaunching和dealloc.我还需要遵守协议还需要什么?

Dar*_*ren 14

这是一个静态警告.这意味着返回类型[[UIApplication sharedApplication] delegate]不符合tab bar委托协议,这是真的.

转换返回的值[[UIApplication sharedApplication] delegate]以消除警告:

MyAppDelegate *appDelegate = (MyAppDelegate*)[[UIApplication sharedApplication] delegate];
Run Code Online (Sandbox Code Playgroud)