首先,这个问题不是this question的重复,因为解决方案不符合我的问题。
我想在MCBrowserViewController
内显示presentViewController
container
。因为我不想要,所呈现的控制器遍及整个屏幕。
我的ViewController里面有容器,如下所示:
我必须使用presentViewController
,因为我的MCBrowserViewController
需要此方法来触发重要部分。
我的问题是,我不知道如何呈现它,因为容器显然是一个视图,我不知道如何去做。
如何使用present-method显示容器内的viewcontroller?
答案 0 :(得分:4)
我尝试将MCBrowserViewController添加为子视图控制器,并且工作正常。它一添加就开始搜索。在这个例子中,IBOutlet contView是一个常规的UIView(不是容器视图),其目的只是在IB中设置MCBrowserViewController的框架。
-(IBAction)showController:(id)sender {
MCPeerID *peerID = [[MCPeerID alloc] initWithDisplayName:@"MyPeer"];
MCSession *session = [[MCSession alloc] initWithPeer:peerID];
MCNearbyServiceBrowser *browser = [[MCNearbyServiceBrowser alloc] initWithPeer:peerID serviceType:@"Service1"];
MCBrowserViewController *mcb = [[MCBrowserViewController alloc] initWithBrowser:browser session:session];
[self addChildViewController:mcb];
[mcb didMoveToParentViewController:self];
mcb.view.frame = self.contView.bounds;
[self.contView addSubview:mcb.view];
}
答案 1 :(得分:1)
所呈现的视图控制器的帧由呈现上下文确定,该呈现上下文通常由根视图控制器(即全屏)提供。但是,表示层次结构中的任何呈现控制器都可以通过将其definesPresentationContext
属性设置为true来提供上下文。然后,它的帧将用于确定所呈现视图的帧。 (请参阅演示文稿上下文提供Apple所提供的视图控制器所涵盖的区域View Controller Programming Guide)