2016-04-15 94 views
0

我试图开发一个应用程序使用Storyboard和Swift 2.0。 我有一个SideMenuController里面有一个UITableView和一个CenterViewController。我每次点击侧边菜单中的一排我执行此操作:发行故事板和PerformWithSegueIdentifier

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    if (indexPath.row == 0){ 
     self.sideMenuController()?.performSegueWithIdentifier(CenterSegue, sender: nil) 
    }else if(indexPath.row == 1){ 
     self.sideMenuController()?.performSegueWithIdentifier(SaloniSegue, sender: nil) 
    }else if(indexPath.row == 2){ 
     ... 
} 

一切似乎都做工精细,但一个小的测试过程中,我已经指出,旧的视图控制器仍然在堆栈中。

enter image description here

有没有办法弹出出来防止超载RAM?

+0

什么是您的segue类型? – Tien

+0

这是一个展示类型(例如,推) –

回答

0

是的,你可以通过访问navigationController.viewController财产 就以这个功能来看看这样做......你会得到一些想法.. 此外,而不是推...你可以performSegue如果你需要

func pushController() 
{ 
    // Variable to check whether viewcontroller is present in memory or not 
    var isFound = false; 

     // searching in array of viewControllers of navigationController 
     for item in self.navigationController!.viewControllers 
     { 
      if(item.isKindOfClass(ViewController) == true) 
      { 
       isFound = true; 
      } 
     } 

    if(isFound == false) 
    { 
     // LoadView then push it 
     self.navigationController?.pushViewController(yourViewController, animated: true); 
    } 
    else 
    { 
     // View Is in memory so just pop to it 
     self.navigationController?.popToViewController(yourViewController, animated: true); 
    } 
} 
+0

我想我不能使用这个,因为我的'self.sideMenuController'它不是一个UINavigationController而是一个UIViewController。不幸的是,它没有viewControllers访问的数组。当其他人推动时,我想销毁一个ViewController。 –

+0

您正在使用哪种类型的segue –

+0

键入自定义,我使用此控制器来管理侧面菜单。 https://github.com/teodorpatras/SideMenuController –

-2

首先,改变你的导航结构,摆脱汉堡/左菜单,这绝对是sux。

+0

我喜欢边菜单结构,用汉堡包左边的菜单。 –

+0

苹果推动/强迫所有流行的应用程序摆脱它...检查流行的应用程序都禁用了他们的汉堡菜单,因为从长远来看,它打破了用户的应用程序导航体验,用户可能会觉得我在应用程序的地狱?在哪个标签/菜单等 – turushan

+0

谢谢你,你是对的。我会尽力向我的客户解释,他确实喜欢它:-) –