4

ストーリーボードを使用して JASidePanels example2 を実装しようとしています。 https://github.com/gotosleep/JASidePanels#example-2-storyboards

-(void)awakeFromNib
{
  [self setLeftPanel:[self.storyboard instantiateViewControllerWithIdentifier:@"leftViewController"]];
  [self setCenterPanel:[self.storyboard instantiateViewControllerWithIdentifier:@"centerViewController"]];
  [self setLeftPanel:[self.storyboard instantiateViewControllerWithIdentifier:@"rightViewController"]];
}

example2 の MySidePanelController.m と同じ CenterViewController.m に上記のコードを追加すると、以下のようにアプリがクラッシュしました。

https://dl.dropboxusercontent.com/u/6655378/stack1.png

-(void)awakeFromNib
{
//  [self setLeftPanel:[self.storyboard instantiateViewControllerWithIdentifier:@"leftViewController"]];
//  [self setCenterPanel:[self.storyboard instantiateViewControllerWithIdentifier:@"centerViewController"]];
//  [self setLeftPanel:[self.storyboard instantiateViewControllerWithIdentifier:@"rightViewController"]];
}

上記のようにコメントアウトすると、アプリは次のように動作しました。 ttps://dl.dropboxusercontent.com/u/6655378/stack2.png

私はiOSが初めてです。何が悪いのか教えていただけますか?

私の環境。

  • XCode : バージョン 4.6.2
  • iOS SDK : 6.1
  • シミュレーター:iPhone 6.1
4

1 に答える 1

5

-awakeFromNib別のセンター ビュー コントローラーをセンター パネルとして設定し、アプリがクラッシュするまでこのように移動するため、センター ビュー コントローラーでコードを呼び出してスタック オーバーフローを引き起こしています。

JASidePanelControllerを実装する場所のサブクラスと-awakeFromNib、パネルとして設定する他の 3 つのビュー コントローラーが必要です。

#import "JASidePanelController.h"

@interface MyPanelsController : JASidePanelController

@end


#import "MyPanelsController.h"

@implementation MyPanelsController

-(void)awakeFromNib
{
    [self setLeftPanel:[self.storyboard instantiateViewControllerWithIdentifier:@"leftViewController"]];
    [self setCenterPanel:[self.storyboard instantiateViewControllerWithIdentifier:@"centerViewController"]];
    [self setRightPanel:[self.storyboard instantiateViewControllerWithIdentifier:@"rightViewController"]];
}

@end

そして、ストーリーボードで a をドラッグしてUIViewControllerそのクラスをMyPanelsControllerに設定し、それを初期ビュー コントローラーとして設定します。

于 2013-05-06T22:18:18.673 に答える