4

Есть ли способ создать UITableView с той же информацией, что и в MCBrowserViewController? Мой текущий код позволяет только стандартное представление, которое не в том же дизайне, что и мое приложение:Создание настраиваемого MCBrowserViewController

self.browserVC = [[MCBrowserViewController alloc] initWithServiceType:@"chat" session:self.mySession]; 
[self presentViewController:self.browserVC animated:YES completion:nil]; 

Любые идеи? Заранее спасибо!

ответ

11
  1. Установите View Controller в качестве делегата MCNearbyServiceBrowser и MCSession (т.е. <MCNearbyServiceBrowserDelegate, MCSessionDelegate>)
  2. Создать свойство для вашего MCNearbyServiceBrowserMCSession)
  3. В viewDidLoad (или в зависимости от того триггер подходит ваш шаблон) вашей View Controller:

    _myPeerID = [[MCPeerID alloc] initWithDisplayName:[UIDevice currentDevice].name]; 
    _mySession = [[MCSession alloc] initWithPeer:_myPeerID]; 
    [_mySession setDelegate:self]; 
    _browser = [[MCNearbyServiceBrowser alloc]initWithPeer:_myPeerID serviceType:@"connectme"]; 
    [_browser setDelegate:self]; 
    [_browser startBrowsingForPeers]; 
    
  4. Реализовать - (void)browser:(MCNearbyServiceBrowser *)browser foundPeer:(MCPeerID *)peerID withDiscoveryInfo:(NSDictionary *)info встретились hod as so:

    1. Добавить каждый найденный одноранговый узел в массив для источника данных вашего UITableView. Как правило, вы получите peerID.displayName.
    2. Звоните [tableView reloadData].
+2

сессия WWDC 2013 под названием «Рядом сети с Multipeer Connectivity» обсуждает это в «продвинутой» части разговор. Он также описывает, что вам нужно делать в различных методах делегата. –

3

Заканчивать MCSessionP2P, демо-приложение, которое иллюстрирует незапланированные возможности работы в сети MCSession. SessionController соответствует MCSessionDelegate, MCNearbyServiceBrowserDelegate и MCNearbyServiceAdvertiserDelegate и действует как источник данных для UITableView. Приложение рекламирует себя через Wi-Fi или Bluetooth и программно соединяется с доступными одноранговыми узлами, устанавливая одноранговую сеть.

0

Ответ Язида работал на меня. Следующий шаг, чтобы подключиться к партнеру, который был найден во время startBrowsingForPeers использования

_browser.invitePeer(peerID, toSession: _mySession, withContext: nil, timeout: 30.0) 

(СВИФТ нотации здесь)

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