我建議您在加載視圖後調用委託方法。 將委託設置爲控制器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"];
}
你能否提供更多的代碼?可能有其他可能導致viewDidLoad執行的其他內容。 – Abhinit