2

我正在使用XLPagerTabStrip在一组视图控制器之间切换。我有三个视图控制器,我希望中间视图控制器默认显示为第一个。

我可以使用

let parentViewController = self.parent! as! ParentViewController
parentViewController.moveToViewControllerAtIndex(1)

在我的第一个视图控制器中,但是第一个视图控制器从服务器加载一些数据,如果我在加载数据时切换到另一个视图控制器,第一个视图控制器将冻结并且不会加载数据。

有没有办法默认显示中间视图控制器?

4

6 回答 6

3

跳转到'currentIndex'的定义并将其从私有更改为公共。然后您可以通过以下代码选择您当前的控制器:

currentIndex = 1
于 2018-04-10T04:19:07.057 回答
3

在功能上:

 override func viewControllers(for pagerTabStripController: 
      PagerTabStripViewController) -> [UIViewController] {
            // This line will help you achieve the requirement
            pagerTabStripController.currentIndex = /* required index */


   }

将 PagerTabStripViewController 中的 currentIndex 设为 public 后,它将顺利运行。

于 2018-05-29T14:20:53.487 回答
1

为了防止加载第一个选项卡,moveToViewControllerAtIndex()必须viewDidLoad()在您的PagerTabStripViewController子类中调用之前调用。

于 2017-05-30T11:25:46.153 回答
0
override func viewControllers(for pagerTabStripController: PagerTabStripViewController) -> [UIViewController] {
pagerTabStripController.moveToViewController(at: 0) // required index
}
于 2018-11-26T10:00:10.237 回答
0

对于 swift 5 中的移动特定选项卡 XLPagerTabStrip

  override func viewDidAppear(_ animated: Bool) {

    if nowFrom == "sendvc"
    {
        self.moveToViewController(at: 3,animated: false)

    }
}
于 2019-06-12T07:34:09.613 回答
0

您必须使用以下几行:

  override func viewDidAppear(_ animated: Bool) {

        self.moveToViewController(at: 2)
        reloadPagerTabStripView()
        
    }
于 2020-08-29T15:04:38.883 回答