相关疑难解决方法(0)

如何在UISplitView Master和Detail之间进行通信而不导入彼此的标头

我正在尝试确定将数据从UISplitViews Master发送到它的详细信息的最佳实践.我想尽量避免导入标头并使代码尽可能重用.我觉得应该有一个非常好的方法来做到这一点,但我能想到的最好的是声明一个协议,但有时协议可能会有点混乱恕我直言.并通过使用与细节交谈

[self setDelegate:id<myProtocol>)self.splitViewController.viewControllers objectAtIndex:1]];
Run Code Online (Sandbox Code Playgroud)

看起来有点片状

有任何想法吗?

objective-c uisplitviewcontroller ios

2
推荐指数
1
解决办法
115
查看次数

使用reverseGeocodeLocation设置地址字符串:并从方法返回

我尝试将起点和终点本地化为地址字符串,以便我可以将其存储到NSUserDefaults.问题是该方法继续执行并且不设置我的变量.

NSLog(@"Begin");

__block NSString *returnAddress = @"";

[self.geoCoder reverseGeocodeLocation:self.locManager.location completionHandler:^(NSArray *placemarks, NSError *error) {
    if(error){
        NSLog(@"%@", [error localizedDescription]);
    }

    CLPlacemark *placemark = [placemarks lastObject];

    startAddressString = [NSString stringWithFormat:@"%@ %@\n%@ %@\n%@\n%@",
                          placemark.subThoroughfare, placemark.thoroughfare,
                          placemark.postalCode, placemark.locality,
                          placemark.administrativeArea,
                          placemark.country];
    returnAddress = startAddressString;

    //[self.view setUserInteractionEnabled:YES];
}];
NSLog(returnAddress);

NSLog(@"Einde");
Run Code Online (Sandbox Code Playgroud)

这是我的应用程序调试器显示的内容:

启动
einde

例如,我的位置地址是:"Mainstreet 32​​,CITY".然后我想看到的是以下内容:

启动
Mainstreet 32​​,CITY
Einde

问题是我的代码不等待我CLGeocoder完成,所以我的变量returnAddress在返回时没有设置,并且它是空的.

有谁知道如何解决这个问题?

cocoa-touch objective-c ios clgeocoder completionhandler

1
推荐指数
1
解决办法
1万
查看次数

在popToRootViewController方法调用之前将数据发送回rootviewcontroller?

在调用popToRootViewControllerAnimated方法之前,将数据发送回根视图控制器的最佳方法是什么?我试图向rootviewcontroller发出信号,表示当前的viewcontroller不再存在,并记录了通过segue推送了什么viewcontroller.

objective-c uiviewcontroller viewcontroller

1
推荐指数
1
解决办法
1691
查看次数

如何观看Singleton的数据?

我已经建立了一个Singleton类.几个视图控制器将从单例中获取其视图的数据.数据会定期更新.

我如何设置应用程序以便视图控制器观察单例以查看数据是否有变化...或者如果有与该视图相关的新数据,则单例会向视图发送消息?

iphone singleton objective-c ios

0
推荐指数
1
解决办法
148
查看次数