HealthKitを使ったアプリを作っています。このアプリは iPad で動作してはならないため、私のviewDidLoad
メソッドには、iPad ユーザーにアラートを表示する if/then/else ステートメントが含まれています。これは私のコードです:
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone && SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0") && [HKHealthStore isHealthDataAvailable] == 1) {
...
}
else {
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Whoops!" message:@"Looks like your device doesn't support HealthKit :(" preferredStyle:UIAlertControllerStyleAlert];
[self presentViewController:alertController animated:1 completion:^(){
NSLog(@"Showed error alert because of unsupported device.");
}];
}
SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0")
ビットはthis gistからのものです。
UIAlertController は、デバイスが iPad である場合、iOS 8.0 以降を実行していない場合、または (何らかの理由で) HealthKit を使用できない場合に表示されます。これは紙の上では問題ありませんが、iOS 8 を実行している iPad 2 シミュレーターでアプリを実行すると、アプリは通常どおり起動し、アラートは表示されません。記録として、アラートにボタンがないことは知っていますが、消えたくありません。iPad または iOS 8 未満のデバイスでのみ表示する必要があるため、表示されたときに消える必要はありません。
では、私のアプリが iPad でアラート ビューを表示しないのはなぜですか? コンソールにエラーは表示されません。
編集: ボタンのない通知は最終製品ではなく、テスト中です。ただし、アラートは引き続き表示されるはずなので、ポイントは残ります。