2015-11-24 3 views
0

Я быстрый разработчик.Обновление UIPageControl с другого контроллера представления

Я делаю пошаговое руководство для приложения (краткое введение с кнопкой входа). Мне удалось разместить фиксированную кнопку входа в нижней части экрана и поместить над ней элемент UIPageControl (кнопка входа в систему). Итак, у меня есть элемент UIPageControl (называемый pageControl) на первом ViewController, где фиксированные кнопки помещены (1), и у меня есть PageViewController (2). Я сделал IBOutlet для UIPageControl, который называется pageControl. Поэтому я хочу обновить UIPageControl при изменении страницы, но всякий раз, когда я пытаюсь сделать это в 2 (сбой с нечетным сообщением «фатальная ошибка: неожиданно найденная нуль при разворачивании параметра« Необязательное значение страницы »).

Вот вопрос .?

Как изменить значение pageControl.currentPage в PageViewController если UIPageControl помещается в другой ViewController

ответ

1

Вы должны иметь один файл XIb и 2 быстрый файл, чтобы сделать это Позвольте мне объяснить в деталях:.

xib file: DefaultVc.xib 

swift file: DefaultVc.swift, LoaderVc.swift 

Очевидно, что у вас должны быть изображения для скольжения. Объявить их в LoaderVc.swift

let grayView=UIView(frame: CGRectMake(0, 0, self.view.frame.size.width , self.view.frame.size.height)) 
grayView.backgroundColor=UIColor.grayColor() 
self.view.addSubview(grayView) 

let image: UIImage = UIImage(named: imageFile)! 
bgImage = UIImageView(image: image) 
bgImage!.frame = CGRectMake(25,100,270,250) 
self.view.addSubview(bgImage!) 

let DynamicView=UIView(frame: CGRectMake(0, 350, self.view.frame.size.width, 200)) 
DynamicView.backgroundColor=UIColor.redColor 
self.view.addSubview(DynamicView) 


let label = UILabel(frame: CGRectMake(0, DynamicView.frame.size.height + 20, view.frame.width, 400)) 
label.textColor = UIColor.whiteColor() 
label.text = titleText 
label.numberOfLines = 3 
label.textAlignment = .Center 
label.font = UIFont(name: label.font.fontName, size: 15) 
view.addSubview(label) 

Затем добавить страницу вид контроллера источника данных в DefaultVc.swift:

class DefaultVc: UIViewController, UIPageViewControllerDataSource{ 
var pageViewController : UIPageViewController? 
var pageImages : Array<String> = ["imageFlash1.png", "imageFlash2.png", "imageFlash3.png","imageFlash4.png"] 

Затем в методе viewDidLoad:

pageViewController = UIPageViewController(transitionStyle: .Scroll, navigationOrientation: .Horizontal, options: nil) 
pageViewController!.dataSource = self 

let startingViewController: InstructionView = viewControllerAtIndex(0)! 
let viewControllers: NSArray = [startingViewController] 
pageViewController!.setViewControllers(viewControllers as? [UIViewController], direction: .Forward, animated: false, completion: nil) 
pageViewController!.view.frame = CGRectMake(0, -50, view.frame.size.width, view.frame.size.height) 

addChildViewController(pageViewController!) 
view.addSubview(pageViewController!.view) 
pageViewController!.didMoveToParentViewController(self) 

После этого вам нужно добавить функции для вашей кнопки входа и функции UIPageViewController

Примечание: Вы можете добавлять и изменять размер кнопки, изображения и динамического представления соответственно

Смежные вопросы