Чтобы обобщить мое приложение, это похоже на iBook: у меня есть несколько страниц, заполненных XML-файлом (текст и изображение). Как и в приложении iBook, я хочу использовать UISlider для выбора и изменения страницы.Как изменить страницу с UISlider из UIView
Я использую UIViewController (appViewController) в качестве Контенер различных UIViews (contentViewController)
заголовок AppViewController:
#import <UIKit/UIKit.h>
#import "contentViewController.h"
@interface AppViewController : UIViewController <UIPageViewControllerDataSource>
{
UIPageViewController *pageController;
NSArray *pageContent;
NSDictionary *pageFields;
}
в AppViewController.m, у меня есть:
// Create a new view controller and pass suitable data.
contentViewController *dataViewController = [[contentViewController alloc]initWithNibName:@"contentViewController" bundle:nil];
Заголовком ContentViewController является:
#import <UIKit/UIKit.h>
@class DCIEquipment;
@interface contentViewController : UIViewController
@property (nonatomic,strong) DCIEquipment *eqt;
@property (assign, nonatomic) NSUInteger pageIndex;
@property (assign, nonatomic) NSUInteger pageNumber;
@property (strong, nonatomic) IBOutlet UISlider *pageSlider;
@end
Поскольку в iBook слайдер, похоже, следит за движением керлинга страницы, я помещаю свой UISlider в contentViewController. Все работает хорошо с UISlider, но я не знаю, как это сделать, чтобы сообщить UIViewController об изменении страницы (я предположил, что код изменения страницы должен быть выполнен в этом контроллере).
Скажите, пожалуйста, если вам нужен еще код. Надеюсь, что объяснения ясны. Я просто хочу знать, куда положить UISlider (представление) и как отправить значение на pageViewController.
Заранее спасибо.
Рафаэль
Я не уверен, что хорошо понимаю: для свойства 'delegate' вы говорите мне, что мне не нужно забывать устанавливать значение с помощью моего appViewController. Как мне это сделать ? Я попробовал с 'self.delegate = [super parentViewController];', но у меня есть несовместимая ошибка типа. Моревет, я предполагаю, что метод 'didChangePage:' должен быть реализован и в моем файле contentViewController-реализация, нет? – Oby1
@ Oby1 yep, вы должны добавить в протокол заголовков 'appViewController' и реализовать внутри него метод' didChangePage: '. –
Astoria
Мне нужно несколько раз, чтобы понять, что свойство делегата должно быть установлено в appViewController.m! Более того, я изменяю 'id' на' NSObject' для свойства делегата, чтобы избежать ** «Неизвестный метод экземпляра для selector» отвечаетToSelector: '** ошибка для 'if (self.delegate && [self.delegate отвечаетSoSelector: @ селектор (contentViewController: didChangePage :)]) '. Это может помочь кому-то узнать; o) Спасибо за помощь и быстрый ответ: o) – Oby1