我建议您在加载视图后调用委托方法。将委托设置为控制器 B。 viewDidLoad 完成后(在控制器 A 中)调用委托方法。您甚至可以根据需要将参数传递给委托。
这是一些示例代码:
控制器 B:
a.delegate = self;
[b.navigationController pushViewController:a animated:YES];
实现委托方法:
- (void)controllerIsLoaded:(ControllerA *)controllerA status:(NSString *)status
{
a.status = status;
}
控制器 A .h 文件:
@class ControllerA;
@protocol ControllerADelegate <NSObject>
- (void)controllerIsLoaded:(ControllerA *)controllerA status:(NSString *)status;
@end
@interface ControllerA : UIViewController
@property (nonatomic, weak) id <ControllerADelegate> delegate;
控制器 A .m 文件:
- (void)viewDidLoad:(BOOL)animated
{
[super viewDidLoad:animated];
/* your viewDidLoad code here... */
if ([_delegate respondsToSelector:@selector(controllerIsLoaded:status)])
[_delegate controllerIsLoaded:self status:@"Loaded"];
}