总结我的应用程序,它就像一个iBook:我用xml文件(文本和图像)填充了多个页面。 就像在iBook应用程序中,我想使用UISlider来选择和更改页面。如何使用UISlider从UIView更改页面
我使用一个UIViewController(appViewController)作为不同的UIViews contener(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发送值。
预先感谢您。
Raphael
我不太清楚:对于属性'委托',你告诉我,我不必忘记用我的appViewController设置值。我该怎么做呢 ?我尝试'self.delegate = [super parentViewController];'但我有一个不兼容的类型错误。 Moreovet,我假设'didChangePage:'方法也必须在我的contentViewController-implement文件中实现,不是吗? – Oby1 2014-11-03 22:33:52
@Oby1是的,你应该在'appViewController'头文件中添加协议并在其中实现'didChangePage:'方法。 –
Astoria
2014-11-04 09:16:11
我需要一些时间来理解委托属性必须在appViewController.m中设置!此外,我更改了'NSObject'的委托属性,以避免**'没有已知实例方法的选择器'respondsToSelector:'**错误'if(self.delegate && [self.delegate respondsToSelector:@选择器(contentViewController:didChangePage :)])'。它可以帮助一些人知道; o)感谢您的帮助和快速回答:o) – Oby1 2014-11-05 23:07:01