Objective-C从另一个UIViewController调用一个方法,自称是什么?

时间:2011-12-05 02:17:56

标签: objective-c delegates uiviewcontroller self

我在UITabBar中有2个UIViewControllers,并希望为我的一个UIViewControllers创建一个外观,并且在尝试执行此操作时遇到问题:

//within the 2nd view controller, that has not been displayed yet:
-(void)startApp
{
    locationManager.delegate = self;
    [locationManager startUpdatingLocation];

}

我正在尝试

//within the first view controller:

[delegate startApp]

上面的示例中“self”指的是什么?如果我设置断点,我会看到第二个视图控制器中的回调被调用,但它不会产生与当我直接从第二个视图控制器调用它时。

第二个视图控制器中的ViewDidLoad在我点击该控制器之前不会被调用,但是,即使我这样做,然后调用startApp方法,结果仍然是意外的。

我很有可能用我的设置打破了MVC模型,并且必须提取代码片段并创建两个控制器都将使用的底层模型,但我希望有一个快速而肮脏的解决方案。 / p>

感谢您的任何澄清!

1 个答案:

答案 0 :(得分:2)

startApp是“第二视图控制器”上的实例方法,因此“self”指的是接收此消息的“第二视图控制器”的特定实例。