2016-11-14 1 views
0

J'utilise une bibliothèque tierce pour mon UISegmentedControl. Les pages sont initialisés comme suit:UISegmentedControl recharger certaines pages

func carbonTabSwipeNavigation(carbonTabSwipeNavigation: CarbonTabSwipeNavigation, viewControllerAtIndex index: UInt) -> UIViewController { 
    switch index { 
    case 0: 
     return self.storyboard!.instantiateViewControllerWithIdentifier("FolderOverviewController") as! FolderOverviewController 
    case 1: 
     return self.storyboard!.instantiateViewControllerWithIdentifier("TopFoldersTab") as! TopFoldersTab 
    case 2: 
     return self.storyboard!.instantiateViewControllerWithIdentifier("CategoriesFolderTab") as! CategoriesFolderTab 
    default: 
     return self.storyboard!.instantiateViewControllerWithIdentifier("CategoriesFolderTab") as! CategoriesFolderTab 
    } 

} 

Lorsque j'appuie sur le troisième segment, l'utilisateur peut aller plus loin vers le bas pour voir plus de détails (via des sous-vues sur la même page). Je voudrais que la page se recharge, chaque fois que je sélectionne à nouveau le troisième segment. (revenez à la page CategoriesFolderTab originale). Actuellement, je le fais avec un ViewDidLoad(), mais cela ralentit l'application lorsque vous le faites plusieurs fois.

Existe-t-il une façon plus correcte de le faire? Merci à l'avance

Répondre

0

Je pense que l'appel viewDidLoad() n'est pas la bonne approche pour y parvenir, au contraire, mettre en œuvre une nouvelle fonction qui devrait contenir le code responsable des données de chargement dans les composants de l'interface utilisateur, par exemple:

override func viewDidLoad() { 
    super.viewDidLoad() 

    reloadUI() 
} 

func reloadUI() { 
    // filling UI components with desired data, such as: 
    // myLabel.text = "Hello World" 
} 

Et quelque part dans votre code (où vous voulez recharger), au lieu d'appeler viewDidLoad(), vous devez appeler la méthode reloadUI().

J'espère que cela a aidé.

0

essayer

Let folderOverVC = self.storyboard!.instantiateViewControllerWithIdentifier("FolderOverviewController") as! FolderOverviewController 
Let topFoldersTab = self.storyboard!.instantiateViewControllerWithIdentifier("TopFoldersTab") as! TopFoldersTab 
Let categoriesFolderTab = self.storyboard!.instantiateViewControllerWithIdentifier("CategoriesFolderTab") as! CategoriesFolderTab 



func carbonTabSwipeNavigation(carbonTabSwipeNavigation: CarbonTabSwipeNavigation, viewControllerAtIndex index: UInt) -> UIViewController { 
switch index { 
case 0: 
    return folderOverVC 
case 1: 
    return topFoldersTab 
case 2: 
    return categoriesFolderTab 
default: 
    return categoriesFolderTab 
} 

} 

cette fois les contrôleurs initialise de vue, de sorte que leurs méthodes de viewDidLoad respectives se réunit une fois initialisés, pas à chaque fois que vous appuyez sur un élément onglet