1

首先,这个问题与这个问题不重复,因为该解决方案不适合我的问题。

我想在 a 中MCBrowserViewController显示presentViewControllera container。因为我不希望呈现的控制器覆盖整个屏幕。

我的 ViewController 里面有容器,看起来像这样: 在此处输入图像描述

我必须使用presentViewController,因为我MCBrowserViewController需要这种方法来触发重要部分。

我的问题是,我不知道如何呈现它,因为容器显然是一个视图,我不知道该怎么做。

如何使用 present-method 在容器内显示视图控制器?

4

2 回答 2

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];
    }
于 2013-10-31T22:15:31.680 回答
1

呈现视图控制器的框架由呈现上下文确定,通常由根视图控制器提供(即全屏)。但是,表示层次结构中的任何表示控制器都可以通过将其definesPresentationContext属性设置为返回 true 来提供上下文。然后它的框架将用于确定呈现视图的框架。(请参阅 Apple 的View Controller Programming Guide中的 Presentation Contexts Provide the Area Covered by the Presented View Controller )

于 2015-04-18T12:27:28.213 回答