2017-06-30 16 views
1

私のシナリオでは、私はXamarin FormsTabbedページを持って、次のとおりです。Xamarinフォームのタブ付きページの検出方法 - iOS?

public partial class MainPage : TabbedPage 
{ 
    public MainPage() 
    { 
     InitializeComponent(); 

     var playPage = new NavigationPage(new PlayPage()) 
     { 
      Title = "Play", 
      Icon = "play.png" 
     }; 
     var settingsPage = new NavigationPage(new SettingsPage()) 
     { 
      Title = "Settings", 
      Icon = "settings.png" 
     }; 
     var favoritesPage = new NavigationPage(new FavoritesPage()) 
     { 
      Title = "Favorites", 
      Icon = "fave.png" 
     }; 
     var aboutPage = new NavigationPage(new AboutPage()) 
     { 
      Title = "About", 
      Icon = "info.png" 
     }; 

     Children.Add(playPage); 
     Children.Add(favoritesPage); 
     Children.Add(settingsPage); 
     Children.Add(aboutPage); 
    } 
} 

私は私のアプリに一時停止し、再生機能を追加したいです。起動時にPlayPageは最初はplay.pngのアイコンを持ち、PlayPageを再びクリックすると、アイコンはpause.pngに変わります。ページはページアイコンだけを変更するものではありません。誰にどのようにこれを行うことができるか考えている?

編集:私は持っている

var tabbarController = (UITabBarController)this.ViewController; 
if (null != tabbarController) 
{ 
    tabbarController.ViewControllerSelected += OnTabBarReselected; 
} 

そして、私のOnTabBarReselected

private void OnTabBarReselected(object sender, UITabBarSelectionEventArgs e) 
{ 
    switch (TabBar.SelectedItem.Title) 
    { 
     case "Play": 
      TabBar.SelectedItem.Title = "Pause"; 
      TabBar.SelectedItem.Image = UIImage.FromFile("pause.png"); 
      break; 
    } 
} 

これはのみませ

は、だから私はOnElementChangedに私はViewControllerSelectedを利用、カスタムレンダラを作成しました仕事の半分。選択したタブバーのTitlePlayからPauseに変更します。これは同じタブをクリックした後で、Iconでは表示されません。アイコンは、そのタブページから出て別のタブを選択するまで、「play.png」のままです。誰でも何か考えがありますか?

答えて

0

カスタムレンダラーを実装してこれをオフにする必要があります。 James Montemagnoのブログにはいくつかの実装があり、アイコンの変更について話しています。

しかしこれは必ずしもアイコンをタップし、すべてのコードので、その特定のアイコンを変更するあなたの条件に関連していない場合にのみページを実行します最初にロードされます。それは良い出発点かもしれません。現在のタブをタップしてその時点でアイコンを変更するとTabbedPageに変更されるプロパティがあるかどうかチェックインします。

でオーバーライドできるOnCurrentPageChangedイベントもありますが、ページがすでにアクティブな場合は呼び出されません。

関連する問題