为什么我的自定义委托方法没有被调用?

时间:2014-02-17 19:24:43

标签: objective-c

我有一个带有4个按钮的viewController(HomePage),然后是一个带有3个viewControllers的TabBarController。 其中一个TabBarController的viewControllers我想用作通过tabBar图标返回“HomePage”的方法。我已将我创建的名为“HomeViewController”的自定义类关联到该viewController。见下图

enter image description here

HomeViewController .H文件。 我用方法“returnToHomepage”

创建了一个协议

enter image description here

HomeViewController .M文件 加载视图后,它会立即调用该委托。 enter image description here

在我的HomepageViewController .H文件中,我确保该文件符合协议。 enter image description here

HomepageViewController .M文件

我实例化HomeViewController的实例并将委托设置为self但是 returnToHomePage方法永远不会被调用!不确定我错过了什么...... enter image description here

2 个答案:

答案 0 :(得分:1)

我认为你在设置委托之前调用了委托方法。

当你在控制器上调用alloc-init时,它会初始化并调用ViewDidLoad,然后你设置了委托......所以这个

[self.delegate returnToHomepage];

之前调用

homeVC.delegate = self;

答案 1 :(得分:1)

您在viewDidLoad中创建的HomeViewController与实际显示在屏幕上的HomeViewController不同。您需要使用UITabBarController的viewControllers方法访问它并以这种方式设置它的委托。