UISegementedControl yordamida turli xil UITableViewControllerlariga o'tish

Menda navigatsiya panelida UISegmentedControl bilan UINavigationViewController bor. Foydalanuvchilar segmentlangan boshqaruvni bosganda, men turli xil ViewControllers-ga oddiy o'tishga erishmoqchiman.

Men ko'p harakat qildim va hech narsa ishlamadi ... Ko'rib chiqilgan manbalar:

Butun loyiha hikoyalar taxtasiga asoslangan! NIBga qaratilgan har qanday yechimlar foydali emas.

UINavigationViewController-ga ContainerControl qo'shish. Ammo bu holda men faqat bitta kontrollerni o'rnatishim mumkin. Embedded-Segue dasturini yaratish mumkin emas edi. IB da ishlab chiqilgan kodda UITableViewController-ni yanada ko'proq jonlantirish bo'sh ko'rinishga olib keladi. Chunki men c'torni MyTableViewController(IntPtr tutqichi): base(tutqich) dan bo'sh konstruktorga o'zgartirishim kerak.

Kimdir turli xil ViewController o'rtasida almashish uchun UISegmentedControl dan qanday foydalanishni ishlaydigan misolni nashr qilishi mumkinmi? Men sizning barcha yordamingizni juda qadrlayman.


person dannyyy    schedule 21.06.2013    source manba


Javoblar (1)


Ishchi yechim:

    public override void ViewDidLoad ()
    {
        base.ViewDidLoad ();

        CreateAndEmbed (TrDetailNavType.Info);
    }

    partial void segmentNavigationValueChanged (MonoTouch.UIKit.UISegmentedControl sender, MonoTouch.UIKit.UIEvent e)
    {
        CreateAndEmbed((TrDetailNavType)sender.SelectedSegment);
    }

    private void CreateAndEmbed(TrDetailNavType tab)
    {
        if (_currentViewController != null) 
        {
            _currentViewController.View.RemoveFromSuperview ();
            _currentViewController.RemoveFromParentViewController();
        }

        string id;
        switch (tab)
        {
        case TrDetailNavType.Info:
            id = "TagesRapportDetailInfoTableViewController";
            break;
        case TrDetailNavType.Lohn:
        case TrDetailNavType.Material:
        case TrDetailNavType.Inventar:
        case TrDetailNavType.Fremdleistung:
        case TrDetailNavType.Regie:
            id = "TagesRapportDetailDummyViewController";
            break;
        }

        _currentViewController = (UIViewController)Storyboard.InstantiateViewController (id);
        _currentViewController.View.Frame = containerDetail.Bounds;
        AddChildViewController (_currentViewController);
        _currentViewController.DidMoveToParentViewController (this);
        containerDetail.AddSubview (_currentViewController.View);
    }
person dannyyy    schedule 21.06.2013