2016-11-14 7 views
0

私はUISegmentedControlにサードパーティのライブラリを使用しています。ページは次のように初期化されます:UISegmentedControl特定のページをリロード

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 
    } 

} 

3番目のセグメントを押すと、ユーザーはさらに詳細を見ることができます(同じページのサブビューを介して)。もう一度3番目のセグメントを選択するたびに、ページをリロードするようにします。 (元のCategoriesFolderTabページに戻ります)。現在私はViewDidLoad()でこれをやっていますが、これを複数回実行するとアプリケーションの速度が低下します。

もっと正しい方法がありますか?

override func viewDidLoad() { 
    super.viewDidLoad() 

    reloadUI() 
} 

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

:事前に感謝を

答えて

0

私はviewDidLoad()を呼び出すと、これを達成するための適切なアプローチではないと思われる、代わりに、例えばすべきは、UIコンポーネントでデータをロードするための責任のコードを含む新しい機能を実装コードのどこか(リロードする場所)にviewDidLoad()の代わりにreloadUI()メソッドを呼び出す必要があります。

これが役に立った。

0

それぞれのviewDidLoadメソッドを使用すると、タブ項目

をタップするたびに、一度初期化されていない呼び出されますので、これは、一度View Controllerを初期化し、この

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 
} 

} 

を試してみてください

関連する問題