2016-09-17 34 views
2

これは明らかな質問ですが、私はネイティブiOS開発を初めて利用しています。CABTMIDICentralViewControllerに「完了」ボタンを追加できません

私はBluetoothのMIDIキーボードに接続する必要があるアプリケーションを開発しています。 AppleのWebサイトで、アプリケーションからBluetoothデバイスを管理する方法について説明している次のドキュメントを見つけました。https://developer.apple.com/library/content/qa/qa1831/_index.html

次のコードを使用してダイアログを表示してキーボードに接続できました。問題は、ダイアログを閉じる方法がないことです。コード内に表示されているものは、「完了」ボタンが追加されていますが、アプリケーションの実行中は表示されません。現在のステータスに応じてナビゲーションバーにいくつかのコントロールとして

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

- (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]; 

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

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

CABTMIDICentralViewController自体は、それが(iPhone版のため)、ボタン

答えて

2

これは私のために働いをオーバーライドしているかわからない場合:

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

- (IBAction)configureCentral:(id)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)configureLocalPeripheral:(UIButton *)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]; 

} 
関連する問題