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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何判斷UIViewController的視圖是否可見

如何判斷UIViewController的視圖是否可見

iOS
郎朗坤 2019-07-22 14:37:33
如何判斷UIViewController的視圖是否可見我有一個選項卡應(yīng)用程序,有很多視圖。有沒有辦法知道UIViewController當(dāng)前在UIViewController?(尋找財產(chǎn))
查看完整描述

3 回答

?
桃花長相依

TA貢獻1860條經(jīng)驗 獲得超8個贊

風(fēng)景窗口屬性如果視圖當(dāng)前可見,則為非零,因此請檢查視圖控制器中的主視圖:

調(diào)用視點方法會導(dǎo)致視圖加載(如果沒有加載),這是不必要的,可能是不可取的。最好先檢查一下,看看是否已經(jīng)加載了。為了避免這個問題,我向isViewLoed添加了調(diào)用。

if (viewController.isViewLoaded && viewController.view.window) {
    // viewController is visible}

或者,如果有UINavigationController管理視圖控制器,則可以檢查其visibleViewController而是財產(chǎn)。

此外,在iOS 9(或更高版本)上的SWIFT中:

if viewController.viewIfLoaded?.window != nil {
    // viewController is visible}


查看完整回答
反對 回復(fù) 2019-07-22
?
qq_笑_17

TA貢獻1818條經(jīng)驗 獲得超7個贊

以下是@progrmr的解決方案UIViewController類別:


// UIViewController+Additions.h


@interface UIViewController (Additions)


- (BOOL)isVisible;


@end



// UIViewController+Additions.m


#import "UIViewController+Additions.h"


@implementation UIViewController (Additions)


- (BOOL)isVisible {

    return [self isViewLoaded] && self.view.window;

}


@end


查看完整回答
反對 回復(fù) 2019-07-22
?
森欄

TA貢獻1810條經(jīng)驗 獲得超5個贊

上述解決方案有幾個問題。例如,如果您使用的是UISplitViewController,主視圖將始終返回true

if(viewController.isViewLoaded && viewController.view.window) {
    //Always true for master view in split view controller}

相反,采取這種簡單的方法,在大多數(shù)情況下,即使不是所有情況下,似乎都很有效:

- (void)viewDidDisappear:(BOOL)animated {
    [super viewDidDisappear:animated];

    //We are now invisible
    self.visible = false;}- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];

    //We are now visible
    self.visible = true;}


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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