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

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

iPhone上的肖像中的UISplitViewController顯示詳細(xì)的VC而不是master

iPhone上的肖像中的UISplitViewController顯示詳細(xì)的VC而不是master

iOS
慕田峪4524236 2019-11-22 13:18:04
我正在Xcode 6中使用Universal Storyboard,目標(biāo)是iOS 7及更高版本。我已經(jīng)實(shí)現(xiàn)了一個(gè)UISplitViewController,現(xiàn)在在運(yùn)行iOS 8的iPhone上本機(jī)支持,而Xcode會(huì)自動(dòng)將其移植到iOS7。它運(yùn)行得非常好,除了當(dāng)您在運(yùn)行iOS 8的iPhone上以肖像模式啟動(dòng)該應(yīng)用程序時(shí),拆分視圖的詳細(xì)視圖當(dāng)我希望第一次看到主視圖控制器時(shí),將顯示controller。我認(rèn)為這是iOS 8的錯(cuò)誤,因?yàn)楫?dāng)您在iOS 7上運(yùn)行該應(yīng)用程序時(shí),它會(huì)正確顯示主視圖控制器。但是iOS 8現(xiàn)在是通用汽車,并且這種情況仍在發(fā)生。我如何設(shè)置它,以便在將拆分視圖控制器折疊時(shí)(屏幕上僅顯示一個(gè)視圖控制器),在顯示拆分視圖控制器時(shí),它顯示主視圖控制器而不顯示詳細(xì)信息?我已經(jīng)在Interface Builder中創(chuàng)建了此拆分視圖控制器。拆分視圖控制器是選項(xiàng)卡欄控制器中的第一個(gè)視圖控制器。主VC和詳細(xì)VC都是導(dǎo)航控制器,其中嵌入了表視圖控制器。
查看完整描述

3 回答

?
HUWWW

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

哦,老兄,這讓我頭疼了好幾天,無(wú)法弄清楚該怎么做。最糟糕的是,使用master-detail模板創(chuàng)建一個(gè)新的Xcode iOS項(xiàng)目效果很好。幸運(yùn)的是,最后,幾乎沒(méi)有什么是我找到解決方案的方法。


我發(fā)現(xiàn)有一些帖子建議解決方案是在上實(shí)現(xiàn)新primaryViewControllerForCollapsingSplitViewController:方法UISplitViewControllerDelegate。我嘗試了一下都無(wú)濟(jì)于事。Apple在似乎有效的主從模板中所做的工作是實(shí)現(xiàn)新的(深呼吸地說(shuō)所有這一切)splitViewController:collapseSecondaryViewController:ontoPrimaryViewController:委托方法(再次UISplitViewControllerDelegate)。根據(jù)docs,此方法:


請(qǐng)委托人調(diào)整主視圖控制器,并將輔助視圖控制器合并到折疊的界面中。


確保閱讀該方法的討論部分以獲取更多具體細(xì)節(jié)。


Apple處理此問(wèn)題的方式是:


- (BOOL)splitViewController:(UISplitViewController *)splitViewController

collapseSecondaryViewController:(UIViewController *)secondaryViewController

  ontoPrimaryViewController:(UIViewController *)primaryViewController {


    if ([secondaryViewController isKindOfClass:[UINavigationController class]]

        && [[(UINavigationController *)secondaryViewController topViewController] isKindOfClass:[DetailViewController class]]

        && ([(DetailViewController *)[(UINavigationController *)secondaryViewController topViewController] detailItem] == nil)) {


        // Return YES to indicate that we have handled the collapse by doing nothing; the secondary controller will be discarded.

        return YES;


    } else {


        return NO;


    }

}

此實(shí)現(xiàn)基本上執(zhí)行以下操作:


如果secondaryViewController是我們期望的(a UINavigationController),并且正在顯示我們期望的(a- DetailViewController您的視圖控制器),但沒(méi)有模型(detailItem),則Return YES to indicate that we have handled the collapse by doing nothing; the secondary controller will be discarded.“

否則,返回“ NO讓拆分視圖控制器嘗試將輔助視圖控制器的內(nèi)容合并到折疊的界面中”

對(duì)于縱向模式的iPhone(以縱向模式開(kāi)始或旋轉(zhuǎn)為縱向模式或更精確的緊湊尺寸級(jí)別),結(jié)果如下:


如果你的觀點(diǎn)是正確的

并有一個(gè)模型,顯示細(xì)節(jié)視圖控制器

但沒(méi)有模型,請(qǐng)顯示主視圖控制器

如果你的觀點(diǎn)不正確

顯示主視圖控制器

清澈如泥。


查看完整回答
反對(duì) 回復(fù) 2019-11-22
?
慕標(biāo)5832272

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

這是Swift中公認(rèn)的答案。只需創(chuàng)建此子類并將其分配到情節(jié)提要中的splitViewController。


//GlobalSplitViewController.swift


import UIKit


class GlobalSplitViewController: UISplitViewController, UISplitViewControllerDelegate {


  override func viewDidLoad() {

    super.viewDidLoad()


    self.delegate = self

  }


  func splitViewController(splitViewController: UISplitViewController, collapseSecondaryViewController secondaryViewController: UIViewController!, ontoPrimaryViewController primaryViewController: UIViewController!) -> Bool{

    return true

  }


}


查看完整回答
反對(duì) 回復(fù) 2019-11-22
?
holdtom

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

迅捷版Mark S的正確答案

如Apple的主從模板所提供。


func splitViewController(splitViewController: UISplitViewController, collapseSecondaryViewController secondaryViewController:UIViewController, ontoPrimaryViewController primaryViewController:UIViewController) -> Bool {

    guard let secondaryAsNavController = secondaryViewController as? UINavigationController else { return false }

    guard let topAsDetailController = secondaryAsNavController.topViewController as? DetailViewController else { return false }

    if topAsDetailController.detailItem == nil {

        // Return true to indicate that we have handled the collapse by doing nothing; the secondary controller will be discarded.

        return true

    }

    return false

}

澄清度

(Mark S所說(shuō)的有點(diǎn)令人困惑)


該委托方法稱為splitViewController: collapseSecondaryViewController: ontoPrimaryViewController:,因?yàn)樗褪沁@樣做的。當(dāng)更改為更緊湊的寬度尺寸時(shí)(例如,將手機(jī)從橫向旋轉(zhuǎn)到縱向時(shí)),它需要將拆分視圖控制器僅折疊為其中一個(gè)。


此函數(shù)返回一個(gè)布爾值,以決定是否應(yīng)折疊Detail并顯示Master。


因此,在本例中,我們將根據(jù)是否選擇了詳細(xì)信息來(lái)決定。我們?nèi)绾沃朗欠襁x擇了我們的詳細(xì)信息?如果我們遵循Apple的Master-Detail模板,則詳細(xì)視圖控制器應(yīng)具有一個(gè)包含詳細(xì)信息的可選變量,因此如果它為nil(.None),則沒(méi)有任何選擇,我們應(yīng)該顯示Master,以便用戶可以選擇某些內(nèi)容。


而已。


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

添加回答

舉報(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)