Прокрутка UIView в UIScrollView с помощью pageControl - PullRequest
0 голосов
/ 15 октября 2011

Я пытаюсь создать «окно» инструкций с UIScrollView с pageControl, который содержит некоторые UIViewControllers:

- (void)loadScrollViewWithPage:(NSInteger)page {
    if (page < 0 || page >= kNumberOfPages) return;

     switch (page) {
        case 0:
           [[WelcomeViewController alloc] initWithNibName:@"WelcomeViewController" bundle:nil];
             break;
        case 1:            
            [[HomeViewController alloc] initWithNibName:@"HomeViewController" bundle:nil];
            break;
        case 2:
            [[FirstTabViewController alloc] initWithNibName:@"FirstTabViewController" bundle:nil];
            break;
        case 3:
            [[SecondTabViewController alloc] initWithNibName:@"SecondTabViewController" bundle:nil];
            break;

        case 4:
            [[ThirdViewController alloc] initWithNibName:@"ThirdViewController" bundle:nil];
            break;
        default:
            [[WelcomeViewController alloc] initWithNibName:@"WelcomeViewController" bundle:nil];
            break;

    }

}

Я не могу заставить его работать.

Прокрутка работает, но я не могу отобразить какой-либо UIViewController, который я сделал!

Как мне заставить его работать?

Ответы [ 2 ]

0 голосов
/ 15 октября 2011

Звучит так, будто вас больше интересует быстрое решение, чем правильное выполнение.Хорошо.Вот как ты это сделаешь.

- (void)loadScrollViewWithPage:(NSInteger)page {
    if (page < 0 || page >= kNumberOfPages) return;

    UIViewController * newController = NULL;

     switch (page) {
        case 0:
           newController = (UIViewController *)[[WelcomeViewController alloc] initWithNibName:@"WelcomeViewController" bundle:nil];
             break;
        case 1:            
            newController = (UIViewController *)[[HomeViewController alloc] initWithNibName:@"HomeViewController" bundle:nil];
            break;
        case 2:
            newController = (UIViewController *)[[FirstTabViewController alloc] initWithNibName:@"FirstTabViewController" bundle:nil];
            break;
        case 3:
            newController = (UIViewController *)[[SecondTabViewController alloc] initWithNibName:@"SecondTabViewController" bundle:nil];
            break;
        case 4:
            newController = (UIViewController *)[[ThirdViewController alloc] initWithNibName:@"ThirdViewController" bundle:nil];
            break;
        default:
            newController = (UIViewController *)[[WelcomeViewController alloc] initWithNibName:@"WelcomeViewController" bundle:nil];
            break;
    }

    if(newController)
    {
        // this method is inside a UIScrollView, right?
        [self.contentView addSubview: newController.view];
    }

    // at this point, newController has been alloc'd and retained.  You should either release it next time you enter 
    // into loadScrollViewWithPage (i.e. declare newController as an object in your .h file) or you should 
    // add "autorelease" after all of those initWithNibName calls up there
}
0 голосов
/ 15 октября 2011

Попробуйте использовать UIPageViewController и добавьте к нему множество различных контроллеров представления (и их представления с прокруткой).

http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIPageViewControllerClassReferenceClassRef/UIPageViewControllerClassReference.html

p.s. UIPageViewController - это iOS 5 и новее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...