UISplitView
について多くの調査を行い、マスターとディテールに変更のあるビューがある場合にスプリットビューを制御する方法を見つけることができませんでした。UISplitViewControllerがシングルトンでデリゲート
次に、デリゲートであるシングルトンクラスでそれを管理する方法が見つかりました。
私の問題は、それが正しい方法であるかどうかはわかりません。私はreusability
とmemory managment
について懸念しています。また、私はシングルトンでデリゲートを作るのはAppleのガイドラインだと感じています。
これは私が持っているものである(そして、それは実際に働いている):
// SharedSplitViewDelegate.h
/* In the detail view controllers:
// in the initial detail view controller
- (void)awakeFromNib
{
[super awakeFromNib];
// needs to be here, otherwise if it's booted in portrait the button is not set
self.splitViewController.delegate = [SharedSplitViewDelegate initSharedSplitViewDelegate];
}
// shared between all detail view controllers
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
SharedSplitViewDelegate *rotationHandler = [SharedSplitViewDelegate initSharedSplitViewDelegate];
[self.toolbar setItems:[rotationHandler processButtonArray:self.toolbar.items] animated:YES];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return YES;
}
*/
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@interface SharedSplitViewDelegate : NSObject <UISplitViewControllerDelegate>
+ (id)initSharedSplitViewDelegate; // returns the singleton class instance
- (NSArray *)processButtonArray:(NSArray *)array; // Adds and removes the button from the toolbar array. Returns the modified array.
@end
今実装:
このコードは、それが実行可能な見つけるだろう皆のために使用して自由に変更できます彼らのプロジェクト:)。
私はStackOverflowを初めて使っています(私はアカウントなしで数ヶ月間潜んでいましたが)ので、すべての批判は暖かく歓迎されています。