2013-06-26 3 views
1

ECSlidingViewController를 구현하려고합니다. & 내 스토리 보드에 단편을 사용하고 있습니다. 나는 a를 MainViewController의 viewDidLoad에 두 번 호출되는 문제와 ECSlidingViewController 구현

self.slidingViewController.underLeftViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Menu"]; 

는 항상 null로 설정지고를있다. 자세한 정보.

  1. 로그 인 스크린 (InitViewController) ------ segue ---------> MainViewController.

내 MainViewController에 다음 코드가 있습니다. 내 InitViewController에서

-(void)addMenuViewControllerWithGesture{ 
self.view.layer.shadowOpacity = 0.075f; 
self.view.layer.shadowRadius = 10.0f; 
self.view.layer.shadowColor = [UIColor blackColor].CGColor; 
if (![self.slidingViewController.underLeftViewController isKindOfClass:[rsMenuViewController class]]) { 

self.slidingViewController.underLeftViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Menu"]; 
} 
} 

(로그인) 이렇게함으로써

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ 

MainViewController *controller = segue.destinationViewController; 

// setting some values before going to the next view. 

controller.id = 0; 

controller.name = @"harish"; 

self.topViewController = controller; 

} 

MainViewController의 viewDidLoad에는 두 번 호출지고 그리고 아래의 값은 항상 null로 설정됩니다.

self.slidingViewController.underLeftViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Menu"]; 

희망이 있습니다. 나는 여기에 매달려있어 해결책을 찾고있다.

감사합니다.

답변

1

좋아요, 알아 냈습니다. 길고 힘든 경험 후에, 나는 그것을 알아 내었다. 나는 비슷한 질문을 여기에했다 : iOS Adding Menu Causes Crash When Not First View 그리고 결국 대답했다. 나는 최근에 당신의 질문에 왔습니다.

그럼 당신은 수많은 파일 (각하는 .m 및 .H)가 있다고 가정 해 봅시다 :

InitViewController을

MenuViewController

MainViewController

SpeakersView 목적은 전환했다

MainViewController에서 SpeakersView에 대한 슬라이드 메뉴에없는 버튼을 사용하지만 직접 실행하면 필립 밀스 (Phillip Mills)가 지적했듯이 슬라이드 메뉴가 null이됩니다. 대신

, 내가 바로 @interface 아래, InitViewController.h에 넣고 :

@property (nonatomic, retain) NSString *location; 

그런 InitViewController.m에서 @implementation에서이 :

@synthesize location; 

내가 처음에있는 viewDidLoad에서이 있었다 InitViewController.m :

self.topViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Main"]; 

다음으로 변경 :

if([location length] == 0){location = @"Main";} 
self.topViewController = [self.storyboard instantiateViewControllerWithIdentifier:location]; 

그런 식으로 변수가 비어 있으면 기본값은 @ "Main"입니다.

그러면 I 버튼을 누른 후 코드를 실행 MainView.m에서는 I이 가지고

InitViewController *ini; 
ini = [self.storyboard instantiateViewControllerWithIdentifier:@"Init"]; 
ini.location = @"Speakers"; 

을 짜잔는 도면 스피커로 잘 전환한다. 보다 정확하게, InitViewController로 전환하여 자동으로 Speakers 나 내가 설정 한 위치로 전환합니다.

이 정보가 도움이되기를 바랍니다.

질문이 있으시면 알려주세요.