CABTMIDILocalPeripheralViewController和CABTMIDICentralViewController之间的不同导航栏行为

时间:2017-05-26 12:31:00

标签: ios objective-c

我很难理解为什么以下视图,一个用于CABTMIDILocalPeripheralViewController,另一个用于CABTMIDICentralViewController在我的iOS应用程序中显示不同的行为(用Objective-C编写)

- (IBAction)configureCentral:(id)sender 
{
CABTMIDICentralViewController *viewController = [CABTMIDICentralViewController new];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController]; // this will present a view controller as a popover in iPad and modal VC on iPhone

viewController.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
                                              target:self
                                              action:@selector(doneAction:)];

navController.modalPresentationStyle = UIModalPresentationPopover;

UIPopoverPresentationController *popC = navController.popoverPresentationController;

popC.permittedArrowDirections = UIPopoverArrowDirectionAny;
popC.sourceRect = [sender frame];

viewController.preferredContentSize = CGSizeMake(320., 400.);

popC.backgroundColor = [UIColor darkGrayColor];
viewController.view.backgroundColor = [UIColor darkGrayColor];

UIButton *button = (UIButton *)sender;
popC.sourceView = button.superview;

[self presentViewController:navController animated:NO completion:nil];
}

在iOS设备上打开弹出视图,该视图未显示任何“完成”按钮以关闭视图。

CABTMIDICentralViewController shows no button to close/dismiss the view

在iPad上点击视图外会关闭它,在iPhone上,视图占用屏幕大小,退出/关闭变得不可能。

用于CABTMIDILocalPeripheralViewController的相同代码按预期工作。

- (IBAction)configureLocalPeripheral:(id)sender
{
    CABTMIDILocalPeripheralViewController *vController = [[CABTMIDILocalPeripheralViewController alloc] init];
    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:vController];

    vController.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
                                                                               target:self
                                                                               action:@selector(doneWithPeripheral:)];

    navController.modalPresentationStyle = UIModalPresentationPopover;

    UIPopoverPresentationController *popC = navController.popoverPresentationController;
    popC.permittedArrowDirections = UIPopoverArrowDirectionAny;
    popC.sourceRect = [sender frame];

    vController.preferredContentSize = CGSizeMake(320., 400.);

    popC.backgroundColor = [UIColor grayColor];
    vController.view.backgroundColor = [UIColor darkGrayColor];

    UIButton *button = (UIButton *)sender;
    popC.sourceView = button.superview;

    [self presentViewController:navController animated:NO completion:nil];
}

CABTMIDILocalPeripheralViewController has a 'done' button

这里出了什么问题?我已经测试过使视图更宽,以查看导航栏中的可用空间是否会导致这种情况。

感谢。

0 个答案:

没有答案