簡體   English   中英

在Swift中使用標識符實例化視圖控制器

[英]Instantiating a view controller with identifier in Swift

通常我會完成以下操作來創建視圖控制器並使用Objective-C設置其dataSource

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Create the data model
    _pageTitles = @[@"Over 200 Tips and Tricks", @"Discover Hidden Features", @"Bookmark Favorite Tip", @"Free Regular Update"];
    _pageImages = @[@"page1.png", @"page2.png", @"page3.png", @"page4.png"];

    // Create page view controller
    self.pageViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"PageViewController"];
    self.pageViewController.dataSource = self;

    PageContentViewController *startingViewController = [self viewControllerAtIndex:0];
    NSArray *viewControllers = @[startingViewController];
    [self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];

    // Change the size of page view controller
    self.pageViewController.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height - 30);

    [self addChildViewController:_pageViewController];
    [self.view addSubview:_pageViewController.view];
    [self.pageViewController didMoveToParentViewController:self];

}

現在我想將它轉換為Swift 這是我到目前為止的嘗試:

override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view, typically from a nib.

    // Create page view controller
    self.pageViewController = self.storyboard.instantiateViewControllerWithIdentifier("PageViewController") as UIPageViewController
    self.pageViewController.dataSource = self;

    var startingViewController = PageContentViewController(nibName: nil, bundle: nil)
    startingViewController = self.viewControllerAtIndex(0)
    var viewControllers: NSArray = [startingViewController];
    self.pageViewController.setViewControllers(viewControllers, direction: UIPageViewControllerNavigationDirection, animated: 0, completion: nil)

    // Change the size of page view controller
    self.pageViewController.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height - 30);

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

我不確定為什么它會拋出一個錯誤:

self.pageViewController.setViewControllers(viewControllers, direction: UIPageViewControllerNavigationDirection, animated: 0, completion: nil)

錯誤:類型名稱后的預期成員名稱或構造函數調用。

的類型的direction:參數是UIPageViewControllerNavigationDirection ,因此參數必須是可能的值之一,例如UIPageViewControllerNavigationDirection.Forward (其可縮短至.Forward由於自動類型推斷)。

animated:參數的類型是Bool ,因此參數必須為truefalse ,而不是0

一起:

self.pageViewController.setViewControllers(viewControllers, direction: .Forward, animated: false, completion: nil)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM