CBCentralManagerOptionShowPowerAlertKey AlertView / Alert Controller Кнопка OK

В приложении я создаю видеоплеер с «пультом дистанционного управления» с двумя разными устройствами iOS, использующими Bluetooth с низким энергопотреблением (BLE), где одно устройство является видеоплеером, а другое отправляет сообщения для воспроизведения, паузы, перемотки назад и т. д. Здесь у меня создается центральный менеджер с ключом CBCentralManagerOptionShowPowerAlertKey.

NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], CBCentralManagerOptionShowPowerAlertKey, nil];
        centralManager = [[CBCentralManager alloc]initWithDelegate:self queue:nil options:options];

Контроллер оповещения / оповещения, подобный этому, появится, если на устройстве не включена настройка Bluetooth (тот, который я получаю, имеет жирный шрифт).

CLBeaconRegion, как отключить предупреждение: включите Bluetooth, чтобы * разрешить подключение к аксессуарам

Я хочу добавить больше функциональности кнопке OK, когда она нажата, кроме resignFirstResponder.

Что мне не хватает, что мне нужно изменить действие кнопки «ОК» в этом представлении предупреждений/контроллере предупреждений? Методы, которые я указал и зарегистрировал, но все еще не могу поймать:

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
{
    NSLog(@"Button Index =%ld",(long)buttonIndex);
}

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    NSLog(@"%ld", (long)buttonIndex);
}

-(void)alertViewCancel:(UIAlertView *)alertView
{
    NSLog(@"alert view cancel");
}

person Some Rican    schedule 07.05.2015    source источник


Ответы (1)


  1. Вам необходимо изменить параметры CentralManager, форма [NSNumber numberWithBool: YES]; в [номер NSNumberWithBool: NO];
  2. реализовать CBCentralManagerDeletgate с помощью метода centralManagerDidUpdateState:.
  3. В методе CentralManagerDidUpdateState: вы создадите оповещение.

    • (void)centralManagerDidUpdateState:(CBCentralManager *)central { if (_bluetoothManager.state == CBCentralManagerStatePoweredOff) { [[[UIAlertView alloc] initWithTitle:nil message:@"my alert" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:@"Cancel", nil ] show]; } }
  4. В alertView:clikedButtonAtIndex: вы переопределите свой код

    -(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { NSLog(@"%ld", (long)buttonIndex); }

person Nghia Apple    schedule 25.09.2015
comment
Есть ли способ установить значение CBCentralManagerOptionShowPowerAlertKey в файле Info.plist? - person user3473445; 12.04.2021