第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

UIPageViewController:返回當(dāng)前可見(jiàn)視圖

UIPageViewController:返回當(dāng)前可見(jiàn)視圖

白板的微信 2019-08-27 17:51:58
UIPageViewController:返回當(dāng)前可見(jiàn)視圖你怎么知道里面顯示的當(dāng)前頁(yè)面/視圖是UIPageViewController什么?我已經(jīng)覆蓋了viewDidAppear我的子視圖的方法,因此他們?cè)趘iewDidAppear方法中向父視圖發(fā)送了一個(gè)id 。但問(wèn)題是:我無(wú)法可靠地將該id用作顯示頁(yè)面的id。因?yàn)槿绻脩艮D(zhuǎn)動(dòng)頁(yè)面但中途決定停止轉(zhuǎn)動(dòng)并將頁(yè)面放回,viewDidAppear則已經(jīng)被調(diào)用。(視圖在卷曲頁(yè)面后面可見(jiàn))。也許我應(yīng)該只在當(dāng)前視圖消失的情況下切換到新的id。但我想知道是否有更簡(jiǎn)單的方法來(lái)返回當(dāng)前可見(jiàn)的視圖?
查看完整描述

3 回答

?
繁星coding

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個(gè)贊

您應(yīng)該手動(dòng)跟蹤當(dāng)前頁(yè)面。委托方法pageViewController:didFinishAnimating:previousViewControllers:transitionCompleted:將告訴您何時(shí)更新該變量。該方法的最后一個(gè)參數(shù)transitionCompleted:可以告訴您用戶是否完成了翻頁(yè)過(guò)渡。

查看完整回答
反對(duì) 回復(fù) 2019-08-27
?
一只斗牛犬

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超2個(gè)贊

從iOS 6開(kāi)始,我發(fā)現(xiàn)viewControllersUIPageViewController 的屬性不斷更新,因此它將始終保存一個(gè)代表當(dāng)前頁(yè)面的視圖控制器,而不是其他內(nèi)容。因此,您可以通過(guò)調(diào)用viewControllers[0](假設(shè)您一次只顯示一個(gè)視圖控制器)來(lái)訪問(wèn)當(dāng)前頁(yè)面。

只有在頁(yè)面“鎖定”到位時(shí),viewController數(shù)組才會(huì)更新,因此如果用戶決定部分顯示下一頁(yè),則除非他們完成轉(zhuǎn)換,否則它不會(huì)成為“當(dāng)前”頁(yè)面。

如果要跟蹤“頁(yè)碼”,請(qǐng)?jiān)谕ㄟ^(guò)UIPageViewController數(shù)據(jù)源方法創(chuàng)建視圖控制器時(shí)為其分配索引值。


例如:

-(void)autoAdvance    {
    UIViewController *currentVC = self.viewControllers[0];
    NSUInteger currentIndex = [myViewControllers indexOfObject:currentVC];

    if ( currentIndex >= (myViewControllers.count-1) ) return;

    [self setViewControllers:@[myViewControllers[ currentIndex+1 ]]
        direction:UIPageViewControllerNavigationDirectionForward
        animated:YES
        completion:nil];
    }-(NSInteger)presentationIndexForPageViewController:
                         (UIPageViewController *)pageViewController    {
    // return 0;
    UIViewController *currentVC = self.viewControllers[0];
    NSUInteger currentIndex = [myViewControllers indexOfObject:currentVC];
    return currentIndex;
    }

請(qǐng)注意這是不可靠的評(píng)論


查看完整回答
反對(duì) 回復(fù) 2019-08-27
?
守著一只汪

TA貢獻(xiàn)1872條經(jīng)驗(yàn) 獲得超4個(gè)贊

不幸的是,以上所有方法都沒(méi)有幫助我。不過(guò),我通過(guò)使用標(biāo)簽找到了解決方案??赡芩皇亲詈玫?,但它有效,并希望它可以幫助某人:

- (void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed 
{
    if (completed) {
        int currentIndex = ((UIViewController *)self.pageViewController.viewControllers.firstObject).view.tag;
        self.pageControl.currentPage = currentIndex;
    }}

在Swift :(感謝@Jessy)

func pageViewController(pageViewController: UIPageViewController,
    didFinishAnimating finished: Bool,
    previousViewControllers: [UIViewController],
    transitionCompleted completed: Bool){
    guard completed else { return }
    self.pageControl.currentPage = pageViewController.viewControllers!.first!.view.tag}

示例: gist


查看完整回答
反對(duì) 回復(fù) 2019-08-27
  • 3 回答
  • 0 關(guān)注
  • 1211 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)