2016-05-19 57 views
-1

我使用PageMenu作爲viewcontrollers分頁。我有一個主視圖控制器,後來我添加了3個UITableViewControllers。例如,當我從我的MainControllers第二個選項卡訪問某個ViewController並返回時,它看起來像第一個選項卡,而不是第二個選項卡。如何檢測UIViewController裏面的UITableView類?

現在我想檢測我的主ViewController裏面的UITableView類。我該怎麼做?

我已經試過:

for vc in navigationController!.viewControllers { 
     if vc is UITableViewController { 
      print("POPO \(vc)") 
     } 
    } 

但是這個代碼不打印任何東西。我做錯了什麼?

+2

isKindOfClass(UITableViewController)將幫助 –

+0

這意味着您的導航控制器的視圖控制器都不是UITableViewControllers。沒有關於應用程序結構的更多背景信息,很難提供幫助。 – Tim

+0

@Jeff不,我有!你可以看看這些回購?你會理解 – Sam

回答

0

嘗試

if vc.isKindOfClass(UITableViewController) { 
    print("POPO \(vc)") 
} 

或者

if let viewController = vc as? UITableViewController { 
    print("POPO \(vc)") 
} 
+0

但它不會在這種情況下打印任何東西 – Sam

+0

嘗試'vc.isKindOfClass(UIViewController)'看看它是否全部打印 – Magoo

+0

基本上我不認爲您的ViewControllers在導航堆棧上 – Magoo

0
for vc in navigationController!.viewControllers { 
    if vc is UITableViewController { 
     print("POPO \(vc)") 
    } 
} 

這將打印的聲明只有在TableViewController仍處於UINavigationController堆棧。如果您訪問了TableViewController並通過pop返回,那麼同樣的內容將從導航堆棧中刪除,並且上面的代碼段不再顯示任何內容。確保TableViewController在堆棧中以獲得此方法的結果。

相關問題