• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 无法将 "Done"按钮添加到 CABTMIDICentralViewController

[复制链接]
菜鸟教程小白 发表于 2022-12-12 22:10:07 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

如果这是一个明显的问题,我很抱歉,但我是原生 iOS 开发的新手,我一直在寻找答案几个小时没有任何成功。

我正在开发一个需要连接到蓝牙 MIDI 键盘的应用程序。我在 Apple 的网站上找到了以下文档,其中描述了如何从应用程序管理蓝牙设备 https://developer.apple.com/library/content/qa/qa1831/_index.html

我能够使用以下代码显示对话框并连接到键盘。问题是,没有办法关闭对话框。对于我在代码中看到的内容,添加了“完成”按钮,但在运行应用程序时它不显示。

- (void)doneActionid)sender
{
    [self dismissViewControllerAnimated:YES completion:nil];
}

- (IBAction)configureCentralid)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
                                                      actionselector(doneAction];

    navController.modalPresentationStyle = UIModalPresentationPopover;

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

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

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

CABTMIDICentralViewController 本身作为导航栏的一些控件,具体取决于当前状态,不确定它是否覆盖了此类按钮



Best Answer-推荐答案


这对我有用(适用于 iPhone 版本):

- (void)doneActionid)sender {
  [self dismissViewControllerAnimated:NO completion:nil];
}

- (IBAction)configureCentralid)sender {

  CABTMIDICentralViewController *viewControllerBT = [CABTMIDICentralViewController new];

  UINavigationController *navControllerBT = [[UINavigationController alloc] initWithRootViewController:viewControllerBT];

  UIButton * btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
  btn.frame = CGRectMake(screenSize.width-60, 40, 60, 40);
  btn.titleLabel.font = [UIFont boldSystemFontOfSize:17.0];
  [btn setTitle"Done" forState:UIControlStateNormal];
  [btn addTarget:self action: @selector(doneAction forControlEvents: UIControlEventTouchDown];
  [navControllerBT.view addSubview:btn];

  [self presentViewController:navControllerBT animated:NO completion:nil];

}

- (IBAction)configureLocalPeripheralUIButton *)sender {

  CABTMIDILocalPeripheralViewController *viewControllerBTA = [[CABTMIDILocalPeripheralViewController alloc] init];

  UINavigationController *navControllerBTA = [[UINavigationController alloc] initWithRootViewController:viewControllerBTA];

  UIButton * btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
  btn.frame = CGRectMake(screenSize.width-60, 40, 60, 40);
  btn.titleLabel.font = [UIFont boldSystemFontOfSize:17.0];
  [btn setTitle"Done" forState:UIControlStateNormal];
  [btn addTarget:self action: @selector(doneAction forControlEvents: UIControlEventTouchDown];
  [navControllerBTA.view addSubview:btn];

  [self presentViewController:navControllerBTA animated:NO completion:nil];

}

关于ios - 无法将 "Done"按钮添加到 CABTMIDICentralViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39547797/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap