HƯỚNG DẪN PHÂN TRANG TRONG IOS XỬ DỤNG FILE XIB Các ứng dụng thực tế gặp nhiều phong cánh chuyển tiếp nhiều view khác Ở hướng dẫn giới thiệu bạn phân trang chuyển tiếp trang Như truyện phân trang lướt đến trang để đọc!!! ->mục tiêu giúp bạn : – Phân trang định hướng theo chiều – Chuyển tiếp trang – Các điểm di chuyển theo trang Bắt đầu tạo project đặt tên XibPageViewController Tạo file ChildViewController.xib.Để tạo viewcontroller pageViewController.xib Để tạo viewcontroller để load viewcontroller lên Tạo file class để quản lý viewcontroller !!!… ChildViewController: Quản lý ChildViewController.xib pageViewController Quản lý pageViewController.xib sau tạo trông Xoá file mặc định ViewController Thiết kế giao diện chọn file ChildViewController.xib kết nối class quản lý kết nối view thay đổi màu background thêm label vào label để phân biệt xem file xib ta load ánh xạ label sang class quản lý đặt tên: @property (weak, nonatomic) IBOutlet UILabel *Screenindex; Làm việc tương đương với giao diện file pageViewController.xib ta thay đổi color background trông Mã nguồn code: vào ChildViewController.h: @property (weak, nonatomic) IBOutlet UILabel *Screenindex; @property(assign,nonatomic) NSInteger index; Thêm index để hiển thị lên label đánh dấu xem xem file xib ChildViewController.m: settex lên label: - (void)viewDidLoad { [super viewDidLoad]; self.Screenindex.text=[[NSString alloc]initWithFormat:@"Screen %ld",(long)self.index]; } Để chuyển tiếp trang ios trở có hỗ trợ class UIPageViewController cho phép chuyển tiếp trang hiệu ứng chuyển ,đánh dấu trang… vào file pageViewController.h để sử dụng UIPageViewController đăng đý dataSource và khởi tạo pageViewcontroller @interface pageViewController : UIViewController @property(nonatomic,strong) UIPageViewController *pageController; UIPageViewController cung cấp phương thức để xem trang trước xem trang sau xem trang trước -(UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController{ } xem trang sau -(UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController{ } Ta tạo hàm ,Dùng đăng ký file xib gọi set giá trị cho index -(ChildViewController *)viewControllerAtIndex:(NSUInteger)index{ // đăng ký viewcontroller! ChildViewController *childViewcontroller=[[ChildViewController alloc]initWithNibName:@"ChildViewController"bundle:nil]; childViewcontroller.index=index; return childViewcontroller; } trả file viewcontroller xib đó.!!! Kiểm tra hình trước hình xem có tồn không trả hình trước -(UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController{ NSUInteger index=[(ChildViewController *)viewController index]; if (index==0) { return nil; } index ; return [self viewControllerAtIndex:index]; } Kiểm tra hình sau hình xem có tồn không trả hình sau -(UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController{ NSUInteger index=[(ChildViewController *)viewController index]; index++; if (index==5) { return nil; } return [self viewControllerAtIndex:index]; } Khi lướt hàm gọi -đăng ký số ô chấm hiển thị ô chấm nào!!! -(NSInteger)presentationCountForPageViewController:(UIPageViewController *)pageViewController{ return 5; } // vi tri o bat dau!!! -(NSInteger)presentationIndexForPageViewController:(UIPageViewController *)pageViewController{ return 0; } Tạo mảng để lưu lại hình hiển thị!!! NSMutableArray *viewControllers;// Các bạn thêm đoạn mã sau vào Viewdidload giải thích dùng lệnh: - (void)viewDidLoad { 10 11 12 [super viewDidLoad]; viewControllers = [[NSMutableArray alloc]init]; // Xác định Kiểu chuyển hướng xác định hướng chuyển đổi! // Kiểu cuộn trang self.pageController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil]; // đăng ký dataSource !!! self.pageController.dataSource = self; // xet full Screen [[self.pageController view] setFrame:[[self view] bounds]]; 13 14 15 16 17 // tao trang thu va tren index cho no ChildViewController *initialViewController = [self viewControllerAtIndex:0]; // [viewControllers addObject:initialViewController]; [self.pageController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil]; 18 19 [self addChildViewController:self.pageController]; 20 21 [[self view] addSubview:[self.pageController view]]; 22 } Đầu tiên đăng ký Kiểu chuyển trang, đăng ký hướng chuyển đổi Đăng ký dataSource cho pageViewController đăng ký fullScreen cho pageViewController tạo file Viewcontroller.xib thứ để load lên đưaviewcontroller.xib vào mảng để lưu lại…!!! gán hình vựa tạo vào self.pageController cho phép chuyển theo kiểu UIPageViewControllerNavigationDirectionForward sau từ view thêm vào self.pageController đăng ký… cuối cho phép dán lên viêw ok Để load file pageViewController.xib ta thêm đoạn mã sau!!! hướng dẫn bạn load file xib!!! - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window=[[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds]; UIViewController *controller=[[pageViewController alloc]initWithNibName:@"pageViewController" bundle:nil]; self.window.rootViewController=controller; [self.window makeKeyWindow]; return YES; } Chúng ta biên dịch chạy thử kết hình full code http://www.mediafire.com/download/nyg21azcfkm3112/XibPageViewController.zip