2013-11-28 2 views
0

자습서 스타일 UIPageViewController를 추가하기 위해 AppCoda 튜토리얼을 사용했습니다. 놀랍게도 작동합니다. 버튼 클릭으로 제거 할 수 없습니다.PageViewController를 제거하십시오.

#import "startupViewController.h" 
#import "SKSlideViewController.h" 
#import "APPChildViewController.h" 

@interface startupViewController() 
@end 
@implementation startupViewController 
@synthesize outletWallpaper; 

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

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    [self mymethod]; 
} 

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

- (void)mymethod { 

    self.pageController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil]; 

    self.pageController.dataSource = self; 
    [[self.pageController view] setFrame:[[self view] bounds]]; 

    APPChildViewController *initialViewController = [self viewControllerAtIndex:0]; 

    NSArray *viewControllers = [NSArray arrayWithObject:initialViewController]; 

    [self.pageController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil]; 

    [self addChildViewController:self.pageController]; 
    [[self view] addSubview:[self.pageController view]]; 
    [self.pageController didMoveToParentViewController:self]; 

} 

- (APPChildViewController *)viewControllerAtIndex:(NSUInteger)index { 

    APPChildViewController *childViewController = [[APPChildViewController alloc] initWithNibName:@"APPChildViewController" bundle:nil]; 
    childViewController.index = index; 

    return childViewController; 

} 

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController { 

    NSUInteger index = [(APPChildViewController *)viewController index]; 

    if (index == 0) { 
     return nil; 
    } 

    // Decrease the index by 1 to return 
    index--; 

    return [self viewControllerAtIndex:index]; 

} 

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController { 

    NSUInteger index = [(APPChildViewController *)viewController index]; 

    index++; 

    if (index == 3) { 
     return nil; 
    } 

    return [self viewControllerAtIndex:index]; 

} 

- (NSInteger)presentationCountForPageViewController:(UIPageViewController *)pageViewController { 
    // The number of items reflected in the page indicator. 
    return 3; 
} 

- (NSInteger)presentationIndexForPageViewController:(UIPageViewController *)pageViewController { 
    // The selected item reflected in the page indicator. 
    return 0; 
} 

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

    NSLog(@"Switching View Controllers..."); 

     SKSlideViewController *slideController=(SKSlideViewController *)[segue destinationViewController]; 
     [slideController setStoryBoardIDForMainController:@"MainVC" leftController:@"LeftVC" rightController:@"RightVC"]; 
     [slideController reloadControllers]; 

} 

@end 

이 코드는 거기에서, 나는 전체를 제거해야 다른 파일에 저를 보냅니다

여기 내 PageViewController입니다.

+0

, 아무것도 작동하지 않습니다. 하지만 self.view.alpha를 0으로 설정하려고 시도했는데 (작동하는 것처럼 보이는 새로운 .m 파일에서), (버튼 등 ..) 어떤 것도 사용할 수 없다. – iOSDec

+0

보기의 모든보기를 반복하고, superview, childview를 찾고, 먼저 pageController를 찾으십시오. - (IBAction를) CLOSEALL : – Retterdesdialogs

+0

난 그냥 UIPageController.m에이 코드를 추가하려고했습니다 (ID) 보낸 사람을 { UIStoryboard * SB = [UIStoryboard storyboardWithName : "메인"번들 @ : 무기 호] UIViewController * vc = [sb instantiateViewControllerWithIdentifier : @ "MainVC"]; vc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; [self presentViewController : vc animated : 예 완료 : NULL]; }는 는 이제 메시지 : <: 0x8d37a40 SAMainViewController>에 시도가 제시 은 뷰 윈도우 계층 아니다!? – iOSDec

답변

0

나는 appcoda에 관한 동일한 튜토리얼을했고, 같은 질문을 가졌다 고 생각합니다! 나를 위해 일했다

해결책은 내가 another question에 실수를 통해 발견 :

나는 수퍼 뷰 (SuperView)에서 모든 것을 제거하려고했습니다
// Replace deleteVC with your UIPageViewController 
[deleteVC willMoveToParentViewController:nil]; 
[deleteVC.view removeFromSuperview]; 
[deleteVC removeFromParentViewController]; 
관련 문제