0

下の画像をご覧ください。私はxcode 4.5.2も使用していることに注意してください。私はgithub Example #2の JASidePanels の例に従いましたが、このブラック ボックスを取り除くことができないようです! それ以外の場合、SidePanel は実際には期待どおりに機能します。=)

問題のイメージ

私の centerViewController と leftViewController も同じように見えます (以下のコード)。しかし、例にあるように実行しようとしたとき、そのような運がなかったので、JASidePanelController をサブクラス化する必要がありました。

centerViewController.h:

#import "JASidePanelController.h"

@interface centerViewController : JASidePanelController

@end

centerViewController.m

#import "centerViewController.h"

@interface centerViewController ()

@end

@implementation centerViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

私は何かが欠けている可能性がありますか?メインの JASidePanelController 自体の rightViewController を削除するために、数行のコードをコメントアウトしました。これが問題を引き起こしている可能性があり、さらに問題が発生しただけだと考えています。左と中央を使用しているだけなので、例の rightViewController のコードはありません。そのため、コードをデフォルトに戻すと、シミュレーターのアプリの上にブラック ボックスが残ります。

前もって感謝します!

4

1 に答える 1

1

JASidePanelControllerあなたの中心のView Controllerから継承しないでください。JASidePanelControllerは、 3 つのビュー コントローラーを保持できるコンテナー ビューと考えてください。AppDelegate私のプロジェクトの例を次に示します。

self.panelController = [[JASidePanelController alloc] init];

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *centerViewController = [storyboard instantiateInitialViewController];
self.panelController.centerPanel = centerViewController;
self.panelController.delegate = centerViewController;
self.panelController.rightPanel = [[DBRightViewController alloc] init];
self.panelController.leftPanel = [[DBLeftViewController alloc] init];

JASidePanelViewControllerこのように考えてください。他のView Controllerを保持する単一の が必要です。これは のサブクラスにすることができますが、JASidePanelViewControllerそれへの参照をどこかに保存している限り、おそらく必要ありません。私の例ではpanelController、 をプロパティとしてmy に保存しますAppDelegate

次に、各ビューコントローラーは のサブクラスになりますUIViewController

于 2013-03-17T23:37:37.530 に答える