2016-03-30 2 views
0

Я имел дело с UIScrollView Я хочу, чтобы он был доступен другому классу, поэтому я могу вносить в него изменения.Сделать UIScrollView доступными другие классы

Код для viewController где scrollView определяется

import UIKit 

public class ViewController: UIViewController , UIScrollViewDelegate { 
    @IBOutlet public weak var scrollView: UIScrollView! 

    override public func viewDidLoad() { 
    super.viewDidLoad() 

    self.scrollView.pagingEnabled = true 
    self.scrollView.delegate = self 
    // Do any additional setup after loading the view, typically from a nib. 
    let V1 = self.storyboard?.instantiateViewControllerWithIdentifier("HomeScreen") as UIViewController! 
    //Add initialized view to main view and its scroll view and also set bounds 
    self.addChildViewController(V1) 
    self.scrollView.addSubview(V1.view) 
    V1.didMoveToParentViewController(self) 
    V1.view.frame = scrollView.bounds 

    //Initialize using Unique ID for the View 
    let V2 = self.storyboard?.instantiateViewControllerWithIdentifier("MainScreen") as UIViewController! 
    //Add initialized view to main view and its scroll view also set bounds 
    self.addChildViewController(V2) 
    self.scrollView.addSubview(V2.view) 
    V2.didMoveToParentViewController(self) 
    V2.view.frame = scrollView.bounds 

    //Create frame for the view and define its urigin point with respect to View 1 
    var V2Frame: CGRect = V2.view.frame 
    V2Frame.origin.x = self.view.frame.width 
    V2.view.frame = V2Frame 

    //The width is set here as we are dealing with Horizontal Scroll 
    //The Width is x3 as there are 3 sub views in all 
    self.scrollView.contentSize = CGSizeMake((self.view.frame.width) * 2, (self.view.frame.height))  
    } 
} 

Теперь я хочу в этом классе scrollView доступны в классе Home_Screen

код для Home_Screen

import UIKit 

class Home_Screen: UIViewController , UIScrollViewDelegate { 

    @IBOutlet weak var nameLabel: UILabel! 
    @IBOutlet weak var slideToUnlockLabel: UILabel! 
    @IBOutlet weak var imageView: UIImageView! 
    @IBOutlet weak var shimmeringView : FBShimmeringView! 

    override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view. 

    let viewController = ViewController() 
    let scrollView = viewController.scrollView 

    // Add The ShimmeringView 
    shimmeringView.contentView = slideToUnlockLabel 
    shimmeringView.shimmering = true 
    shimmeringView.shimmeringBeginFadeDuration = 0.5 
    shimmeringView.shimmeringOpacity = 0.45 
    shimmeringView.shimmeringAnimationOpacity = 1.5 
    } 
} 

ответ

0

The проблема в том, как вы инициализируете ViewC ontroller с scrollview. Вы создали его из раскадровки или Xib, но вы инициализируете его без него. Попробуйте что-нибудь подобное

let storyboard = UIStoryboard(name: "ViewController", bundle: nil) 
if let vc = storyboard.instantiateViewControllerWithIdentifier("ViewControllerId") as? ViewController{ 
     let scrollview = vc.scrollview 
    } 
Смежные вопросы