从另一个视图控制器

时间:2015-11-24 18:15:11

标签: ios swift uipageviewcontroller uipagecontrol

我是一名快速的开发人员。

我正在为应用制作演练(使用登录按钮进行简短介绍)。我设法在屏幕底部放置一个固定的登录按钮,并在其上方放置UIPageControl元素(登录按钮)。 所以我在第一个ViewController上得到了UIPageControl元素(称为pageControl),其中放置了固定按钮(1)并且我有一个PageViewController(2)。我为UIPageControl创建了一个名为pageControl的IBOutlet。因此我希望在页面更改时更新UIPageControl,但每当我尝试在2中进行更新时(它与奇怪的消息崩溃"致命错误:在展开可选值pageControl时出乎意料地发现nil"。

这是问题所在。

如果将UIPageControl放在其他ViewController中,如何更改PageViewController中的pageControl.currentPage值?

1 个答案:

答案 0 :(得分:1)

您需要有一个xib文件和两个swift文件才能执行此操作。让我详细解释一下:

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的功能

注意:您可以相应地添加和更改按钮,图片和动态视图的大小