Iphone 它';是否可以在AppDelegate中创建自定义委托?

Iphone 它';是否可以在AppDelegate中创建自定义委托?,iphone,ios,appdelegate,Iphone,Ios,Appdelegate,我想知道是否可以在AppDelegate类中创建自定义委托,例如: @protocol AppDelegateDelegate <NSObject> - (void)finishSync:(BOOL)success; @end @interface AppDelegate : UIResponder <UIApplicationDelegate> { @property (nonatomic, weak) id <AppDelegateDelegate>

我想知道是否可以在AppDelegate类中创建自定义委托,例如:

@protocol AppDelegateDelegate <NSObject>

- (void)finishSync:(BOOL)success;

@end

@interface AppDelegate : UIResponder <UIApplicationDelegate> {

@property (nonatomic, weak) id <AppDelegateDelegate> delegate;

@end

在中,我只停留在该视图中工作,但例如,如果我切换到具有相同代码的SecondViewController来实现委托,委托也不再工作,MasterViewController中也不工作……我怎么了?

是的,这很好。您可以在任何地方创建代理,并通过导入该类在任何地方使用它。没有限制。

是的,可以。您可以在任何地方创建代理,并通过导入该类在任何地方使用它。没有限制。

谢谢您的接受。我想我以前已经回答了你的一个问题。我关注SO中的大部分问题。:)如果我想使用其他视图中的委托,我如何使用它?我必须这么做?AppDelegate*appController=(AppDelegate*)[[UIApplication sharedApplication]委托];appController.customDelegate=self;代码中的任何地方?或者我必须在@interface的头文件中声明appController?因为我注意到这样做是可行的,但是当我切换到另一个具有相同代码的视图来声明委托时,委托就不再有效了…@Piero,在appdelegate中使用此委托到底想实现什么?为什么你需要它在那里,而不是在其他班级?如果您计划在多个类中使用appdelegate,则不应为此使用appdelegate,因为它只有一个实例,不能有多个这样的委托。我建议你把这个问题作为一个新问题发布,详细说明你想要达到的目标。我们可以建议其他方法。因为这个问题是关于我们是否可以使用appdelegate进行协议,所以不应该和其他问题混淆。感谢您的接受。我想我以前已经回答了你的一个问题。我关注SO中的大部分问题。:)如果我想使用其他视图中的委托,我如何使用它?我必须这么做?AppDelegate*appController=(AppDelegate*)[[UIApplication sharedApplication]委托];appController.customDelegate=self;代码中的任何地方?或者我必须在@interface的头文件中声明appController?因为我注意到这样做是可行的,但是当我切换到另一个具有相同代码的视图来声明委托时,委托就不再有效了…@Piero,在appdelegate中使用此委托到底想实现什么?为什么你需要它在那里,而不是在其他班级?如果您计划在多个类中使用appdelegate,则不应为此使用appdelegate,因为它只有一个实例,不能有多个这样的委托。我建议你把这个问题作为一个新问题发布,详细说明你想要达到的目标。我们可以建议其他方法。因为这个问题是关于我们是否可以将appdelegate用于协议,所以它不应该和其他问题混为一谈。
#import "AppDelegate.h"

@interface MasterViewController : UIViewController <AppDelegateDelegate>

@end
@implementation MasterViewController

...

- (void)viewDidLoad {
  AppDelegate *appController = (AppDelegate *)[[UIApplication sharedApplication] delegate];
  appController.customDelegate = self;

}