私はまだObjective-C/iOSの初心者であり、それほど長く学んでいないので、私の無知を許してください:)
アプリのコンテンツは、ユーザーの場所に基づいて変化します。"ThisApp" would like to use your current location
コンテンツをリロードする必要がないように、コンテンツがロードされる前にダイアログを表示することをお勧めします。
一部のアプリでは、起動イメージ ページ (Default.png を表示するページ) にまだその場所のポップアップが表示されているように見えることに気付きました。私はたくさんのグーグルをしましたが、何も見つかりませんでした (おそらく、正しい用語を知らなかったからです)。
これを実装した方法は、最初にアプリを LocationViewController に移動させることでした。これにはデフォルト コードのみが含まれ、変更はありません。ストーリーボードには、Default.png を含む画像ビューのみが含まれます。次に、場所からのセグエがあります。コントローラー (LocationViewControllerSegue) をメイン ビュー コントローラーに追加します。
私の AppDelegate.h は次のようになります。
#import <UIKit/UIKit.h>
#import <CoreLocation/CoreLocation.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate, CLLocationManagerDelegate> {
CLLocationManager *locationManager;
}
@property (strong, nonatomic) UIWindow *window;
@end
そして私の AppDelegate.m:
#import "AppDelegate.h"
@implementation AppDelegate
@synthesize window = _window;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
if (locationManager == nil)
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyKilometer;
locationManager.distanceFilter = 16000;
[locationManager startUpdatingLocation];
return YES;
}
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation {
[self.window.rootViewController performSegueWithIdentifier:@"LocationViewControllerSegue" sender:self.window.rootViewController];
}
... snip a bunch of default generated code ...
@end
私の幻想的なロケーションビューコントローラーメソッドよりも、これを行うためのより良い方法はありますか?
これが私が望むものを得る合理的な方法である場合、locationManager よりも performSegueWithIdentifier を配置できる場所はありますか? それを置くのは悪い場所のように思えます (そして、アプリでさらに問題が発生するかどうかはわかりません) が、それを LocationViewController または didFinishLaunchingWithOptions: のいずれかに移動すると、機能しなくなります。
私を正しい方向に向ける助けがあれば幸いです。ありがとう :)