Ios MPC处理程序-如何停止旋转活动监视器?

Ios MPC处理程序-如何停止旋转活动监视器?,ios,uiactivityindicatorview,Ios,Uiactivityindicatorview,我有一个多人游戏,它只是通过MPC处理器连接。“连接”窗口显示附近的人员和连接的玩家。其中有一个旋转的活动图标,它会继续旋转搜索,即使对等方已成功连接。它不是按钮或活动指示器视图。它只是处理程序的一部分,所以我不知道在玩家连接后如何停止它。有什么想法吗?谢谢截图 }看来你不能。该连接浏览器GUI是由MPC框架提供的,API中没有对其进行压制的调用 但是,如果你的应用程序在一个会话中只允许两个对等方,当你获得连接的另一个对等方的didChangeState时,你可以通过编程方式隐藏浏览器(而不是等

我有一个多人游戏,它只是通过MPC处理器连接。“连接”窗口显示附近的人员和连接的玩家。其中有一个旋转的活动图标,它会继续旋转搜索,即使对等方已成功连接。它不是按钮或活动指示器视图。它只是处理程序的一部分,所以我不知道在玩家连接后如何停止它。有什么想法吗?谢谢截图


}看来你不能。该连接浏览器GUI是由MPC框架提供的,API中没有对其进行压制的调用

但是,如果你的应用程序在一个会话中只允许两个对等方,当你获得连接的另一个对等方的didChangeState时,你可以通过编程方式隐藏浏览器(而不是等待用户单击“取消”或“完成”),并且你应该停止广告客户(因为在两个对等方连接后,你不支持更多连接)

我想,“旋转轮子”的意思是“寻找更多的同行进入范围”,而不是“用户不能点击任何按钮”。我同意你的看法,这有点奇怪。该框架允许您实现自己的连接浏览器

import UIKit
import MultipeerConnectivity

class MPCHandler: NSObject, MCSessionDelegate {

var peerID:MCPeerID!
var session:MCSession!
var browser:MCBrowserViewController!
var advertiser:MCAdvertiserAssistant? = nil

func setupPeerWithDisplayName (displayName:String){
    peerID = MCPeerID(displayName: displayName)
}

func setupSession(){
    session = MCSession(peer: peerID)
    session.delegate = self
}

func setupBrowser(){
    browser = MCBrowserViewController(serviceType: "my-game", session: session)
}

func advertiseSelf(advertise:Bool){
    if advertise{
        advertiser = MCAdvertiserAssistant(serviceType: "my-game", discoveryInfo: nil, session: session)
        advertiser!.start()
    }else{
        advertiser?.stop()
        advertiser = nil
    }

}

func session(session: MCSession!, peer peerID: MCPeerID!, didChangeState state: MCSessionState) {
    let userInfo = ["peerID":peerID, "state":state.rawValue]
    dispatch_async(dispatch_get_main_queue(), { () -> Void in
        NSNotificationCenter.defaultCenter().postNotificationName("MPC_DidChangeStateNotification", object: nil, userInfo: userInfo)
    })
}

func session(session: MCSession!, didReceiveData data: NSData!, fromPeer peerID: MCPeerID!) {
    let userInfo = ["data":data, "peerID":peerID]
    dispatch_async(dispatch_get_main_queue(), { () -> Void in
        NSNotificationCenter.defaultCenter().postNotificationName("MPC_DidReceiveDataNotification", object: nil, userInfo: userInfo)
    })
}

func session(session: MCSession!, didFinishReceivingResourceWithName resourceName: String!, fromPeer peerID: MCPeerID!, atURL localURL: NSURL!, withError error: NSError!) {

}

func session(session: MCSession!, didStartReceivingResourceWithName resourceName: String!, fromPeer peerID: MCPeerID!, withProgress progress: NSProgress!) {

}

func session(session: MCSession!, didReceiveStream stream: NSInputStream!, withName streamName: String!, fromPeer peerID: MCPeerID!) {

}