2013-10-11 6 views
0

У меня есть контроллер навигации, у которого есть контроллер корневого представления и два контроллера таблицы. Когда я вставляю первый контроллер таблицы в стек, cbcentralmanager сканирует периферийные устройства BLE, и все работает отлично. Однако, когда я вставляю второй контроллер таблицы в стек, а затем выталкиваю его (возвращаясь к первому контроллеру таблицы), cbcentralmanager сканирует, но никаких устройств не обнаружено. Вот код этого первого контроллера таблицы. Метод viewWillAppear вызывается как ожидалось каждый раз, когда отображается диспетчер tableview, но сканирование ничего не показывает.Менеджер CBCentral не обнаруживает периферийные устройства

- (void)viewWillAppear:(BOOL)animated 
{ 
[super viewWillAppear:animated]; 

[AppDelegate app].cbCentral.delegate = self; 
[AppDelegate app].peripheral.delegate = self; 
[AppDelegate app].brspObject.delegate = self; 

peripherals = [NSMutableArray new]; 
[self startScan]; 
} 

- (void)startScan 
{  
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES; 
[peripherals removeAllObjects]; 
[self.tableView reloadData]; 

[[AppDelegate app].cbCentral scanForPeripheralsWithServices:[NSArray arrayWithObject:[Brsp brspServiceUUID]] options:nil]; 

[self performSelector:@selector(stopScan) withObject:nil afterDelay:5.0]; 
} 

Я был в тупике, назначив должных делегатов в прошлом, но я думаю, что у меня есть все мои базы, которые здесь описаны. Есть предположения?

ответ

0

Я не знаю, почему это работает, но я переехал эти строки кода:

[AppDelegate app].cbCentral.delegate = self; 
[AppDelegate app].peripheral.delegate = self; 
[AppDelegate app].brspObject.delegate = self; 

к - (Недействительными) startScan метод, и теперь он работает.

Смежные вопросы