创建自定义MCBrowserViewController

时间:2013-10-27 12:11:30

标签: iphone objective-c uitableview ios7 multipeer-connectivity

有没有办法创建UITableView,其中包含MCBrowserViewController中找到的相同信息?我当前的代码只允许推送与我的app不在同一设计中的标准视图:

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

有什么想法吗?提前谢谢!

3 个答案:

答案 0 :(得分:11)

  1. 将您的View Controller设置为MCNearbyServiceBrowserMCSession的委托(即<MCNearbyServiceBrowserDelegate, MCSessionDelegate>
  2. 为您的MCNearbyServiceBrowser(和MCSession
  3. 创建一个属性
  4. viewDidLoad中(或适用于您的模式的任何触发器):

    _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];
    
  5. 实现- (void)browser:(MCNearbyServiceBrowser *)browser foundPeer:(MCPeerID *)peerID withDiscoveryInfo:(NSDictionary *)info方法如下:

    1. 将所有找到的对等项添加到数组中,以用于UITableView的数据源。通常,您会获得peerID.displayName
    2. 致电[tableView reloadData]

答案 1 :(得分:3)

查看MCSessionP2P,这是一个演示应用程序,用于说明MCSession的ad-hoc网络功能。 SessionController符合MCSessionDelegateMCNearbyServiceBrowserDelegateMCNearbyServiceAdvertiserDelegate,并充当UITableView的数据源。该应用程序通过Wi-Fi或蓝牙进行广告宣传,并以编程方式连接到可用的对等体,建立点对点网络。

答案 2 :(得分:0)

亚齐德的回答对我有用。下一步,连接到startBrowsingForPeers使用

期间找到的对等方
_browser.invitePeer(peerID, toSession: _mySession, withContext: nil, timeout: 30.0)

(SWIFT表示法)