我在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>
感谢您的任何澄清!
答案 0 :(得分:2)
startApp是“第二视图控制器”上的实例方法,因此“self”指的是接收此消息的“第二视图控制器”的特定实例。