diff --git a/VDSSample.xcodeproj/project.pbxproj b/VDSSample.xcodeproj/project.pbxproj index b62a794..6b65fa5 100644 --- a/VDSSample.xcodeproj/project.pbxproj +++ b/VDSSample.xcodeproj/project.pbxproj @@ -36,6 +36,7 @@ 445BA07A29C088470036A7C5 /* NotificationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 445BA07929C088470036A7C5 /* NotificationViewController.swift */; }; 44604AD929CE1CF900E62B51 /* LineViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44604AD829CE1CF900E62B51 /* LineViewController.swift */; }; 5FC35BE928D5235A004EBEAC /* ButtonViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FC35BE828D5235A004EBEAC /* ButtonViewController.swift */; }; + 71B23C312B921D740027F7D9 /* PaginationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71B23C302B921D730027F7D9 /* PaginationViewController.swift */; }; EA0D1C2F2A66CFE900E5C127 /* CheckboxViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA0D1C2E2A66CFE900E5C127 /* CheckboxViewController.swift */; }; EA0D1C312A673F3500E5C127 /* RadioButtonViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA0D1C302A673F3500E5C127 /* RadioButtonViewController.swift */; }; EA0D1C332A673FD400E5C127 /* RadioButtonItemViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA0D1C322A673FD400E5C127 /* RadioButtonItemViewController.swift */; }; @@ -132,6 +133,7 @@ 445BA07929C088470036A7C5 /* NotificationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationViewController.swift; sourceTree = ""; }; 44604AD829CE1CF900E62B51 /* LineViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LineViewController.swift; sourceTree = ""; }; 5FC35BE828D5235A004EBEAC /* ButtonViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonViewController.swift; sourceTree = ""; }; + 71B23C302B921D730027F7D9 /* PaginationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaginationViewController.swift; sourceTree = ""; }; EA0D1C2E2A66CFE900E5C127 /* CheckboxViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckboxViewController.swift; sourceTree = ""; }; EA0D1C302A673F3500E5C127 /* RadioButtonViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RadioButtonViewController.swift; sourceTree = ""; }; EA0D1C322A673FD400E5C127 /* RadioButtonItemViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RadioButtonItemViewController.swift; sourceTree = ""; }; @@ -329,6 +331,7 @@ 44604AD829CE1CF900E62B51 /* LineViewController.swift */, EAD0688F2A55FC11002E3A2D /* LoaderViewController.swift */, 445BA07929C088470036A7C5 /* NotificationViewController.swift */, + 71B23C302B921D730027F7D9 /* PaginationViewController.swift */, EA89201828B56DF5006B9984 /* RadioBoxGroupViewController.swift */, EAF7F11928A14A0E00B287F5 /* RadioButtonGroupViewController.swift */, EA0D1C322A673FD400E5C127 /* RadioButtonItemViewController.swift */, @@ -523,6 +526,7 @@ EAB2376029E88D5D00AABE9A /* TooltipViewController.swift in Sources */, EA89204828B66CE2006B9984 /* ScrollViewKeyboardAvoiding.swift in Sources */, EA0FC2C12912DC5500DF80B4 /* TextLinkCaretViewController.swift in Sources */, + 71B23C312B921D740027F7D9 /* PaginationViewController.swift in Sources */, EAF7F09C2899B92400B287F5 /* CheckboxItemViewController.swift in Sources */, EA0D1C2F2A66CFE900E5C127 /* CheckboxViewController.swift in Sources */, EA596ABA2A16B2ED00300C4B /* TabsViewController.swift in Sources */, diff --git a/VDSSample/ViewControllers/MenuViewController.swift b/VDSSample/ViewControllers/MenuViewController.swift index 8465c6f..12ac92b 100644 --- a/VDSSample/ViewControllers/MenuViewController.swift +++ b/VDSSample/ViewControllers/MenuViewController.swift @@ -83,6 +83,7 @@ class MenuViewController: UITableViewController, TooltipLaunchable { MenuComponent(title: "Line", completed: true, viewController: LineViewController.self), MenuComponent(title: "Loader", completed: true, viewController: LoaderViewController.self), MenuComponent(title: "Notification", completed: true, viewController: NotificationViewController.self), + MenuComponent(title: "Pagination", completed: true, viewController: PaginationViewController.self), MenuComponent(title: "RadioBoxGroup", completed: true, viewController: RadioBoxGroupViewController.self), MenuComponent(title: "RadioButton", completed: true, viewController: RadioButtonViewController.self), MenuComponent(title: "RadioButtonItem", completed: true, viewController: RadioButtonItemViewController.self), diff --git a/VDSSample/ViewControllers/PaginationViewController.swift b/VDSSample/ViewControllers/PaginationViewController.swift new file mode 100644 index 0000000..47a5807 --- /dev/null +++ b/VDSSample/ViewControllers/PaginationViewController.swift @@ -0,0 +1,48 @@ +// +// PaginationViewController.swift +// VDSSample +// +// Created by Bandaru, Krishna Kishore on 01/03/24. +// + +import UIKit +import VDS + +final class PaginationViewController: BaseViewController { + + var totalPagesTextField = NumericField() + var selectedPageTextField = NumericField() + + override func viewDidLoad() { + super.viewDidLoad() + + addContentTopView(view: component) + totalPagesTextField.text = "10" + component.total = 10 + } + + override func setupForm(){ + super.setupForm() + addFormRow(label: "Surface", view: surfacePickerSelectorView) + addFormRow(label: "Total pages", view: totalPagesTextField) + addFormRow(label: "Selected page", view: selectedPageTextField) + setUpPublishers() + } + + func setUpPublishers() { + surfacePickerSelectorView.onPickerDidSelect = { [weak self] item in + self?.component.surface = item + self?.contentTopView.backgroundColor = item.color + } + totalPagesTextField + .numberPublisher + .sink { [weak self] number in + self?.component.total = number?.intValue ?? 0 + }.store(in: &subscribers) + selectedPageTextField + .numberPublisher + .sink { [weak self] number in + self?.component.selectedPage = number?.intValue ?? 0 + }.store(in: &subscribers) + } +}