アプリに次のビュー コントローラー構造があります。
(ナビゲーション バーではない) を持つコンテナービューコントローラーには が埋め込まれており、これにより追加の子ビュー コントローラーが表示されます。UIToolBar
UIPageViewController
UIPageViewController
container view controller (toolBar) -> PageViewController -> ViewController 1,
ViewController 2
提示された子View Controller 1および2に応じて、コンテナView Controllerのツールバーにボタン(BarButtonItems)を追加および削除したいと思います。
子ビュー コントローラー 1 と 2 がコンテナー ビュー コントローラーのツールバーにアクセスして、ボタンを追加および削除するにはどうすればよいでしょうか?
コンテナView Controllerの
toolbarItems
プロパティは、ボタンがあっても常に0のようです。なぜこれが考えられるのかについてのアイデアはありますか?toolbarItems
プロパティ <> 0 はナビゲーション バーのみですか?
編集
ユーザー DBD からの提案に基づいて、次のメソッドをビュー コントローラーに追加しました。CompanyViewController
これはツールバーを持ち、分割ビューの詳細ウィンドウのビュー コントローラーの基本クラスです (すべての詳細ビュー コントローラーは から継承しますCompanyViewController
)。これらの詳細ビュー コントローラーの 1 つは、前述のページ ビュー コントローラーおよび子ビュー コントローラーと共にコンテンツ ビュー コントローラーとして使用されます。
CompanyViewController:
- (void)addToolBarItems:(NSArray *)buttonArray
{
NSMutableArray *items = [[self.toolbar items] mutableCopy];
[buttonArray enumerateObjectsUsingBlock:^(UIBarButtonItem *barButtonItem, NSUInteger idx, BOOL *stop) {
if (! [items containsObject:barButtonItem] ) [items insertObject:barButtonItem atIndex:0];
}];
[self.toolbar setItems:items animated:NO];
}
- (void)removeToolBarItems:(NSArray *)buttonArray;
{
NSMutableArray *items = [[self.toolbar items] mutableCopy];
[buttonArray enumerateObjectsUsingBlock:^(UIBarButtonItem *barButtonItem, NSUInteger idx, BOOL *stop) {
if ( [items containsObject:barButtonItem] ) [items removeObjectAtIndex:idx];
}];
[self.toolbar setItems:items animated:NO];
}
これは、子コントローラーCompanyViewController
からにアクセスしようとする方法です。
- (CompanyViewController*)parentViewControllerWithToolbar
{
UIViewController *parentPageViewController = self.parentViewController;
CompanyViewController *parentContentViewController = (CompanyViewController*)parentPageViewController.parentViewController;
return (CompanyViewController*)parentContentViewController;
}
ただし、子ビュー コントローラーからメソッドを呼び出そうとすると、addToolBarItems
Xcode のオートコンプリートでメソッドを取得できません。インポートしたにもかかわらず、このメソッドにアクセスできないようです#import "CompanyViewController.h"
。
ここで欠けている可能性のあるものについて何か提案はありますか?