수색…


통사론

  1. Flayout 탐색 구성 요소 : https://components.xamarin.com/view/flyoutnavigation

Xamarin.iOS 탐색 창

  1. 새 Xamarin.iOS 빈 프로젝트를 만듭니다 (단일보기 응용 프로그램).

  2. "Components"폴더를 마우스 오른쪽 버튼으로 클릭하고 "Get More Components"를 선택하십시오. 여기에 이미지 설명을 입력하십시오.

  3. 검색 창에 "Flout Navigation"을 입력하고 아래의 구성 요소를 앱에 추가하십시오. 여기에 이미지 설명을 입력하십시오. 여기에 이미지 설명을 입력하십시오.

"Mono.Touch.Dialog-1"참조를 추가하는 것을 기억하십시오 : 여기에 이미지 설명을 입력하십시오.

  1. 이제 프로젝트를 자세히 클릭하고 "NavigationDrawerController"라는 새로운 UIViewController를 추가하십시오. 여기에 이미지 설명을 입력하십시오.

  2. 이제 "NavigationDrawerController"클래스의 코드는 다음과 같아야합니다.

public partial class NavigationDrawerController : UIViewController
{
    public NavigationDrawerController(IntPtr handle) : base(handle)
    {
    }

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

        NavigationItem.LeftBarButtonItem = getMenuItem();
        NavigationItem.RightBarButtonItem = new UIBarButtonItem { Width = 40 };
    }

    UIBarButtonItem getMenuItem()
    {
        var item = new UIBarButtonItem();
        item.Width = 40;
        //Please provide your own icon or take mine from the GitHub sample:
        item.Image = UIImage.FromFile("Images/[email protected]");
        item.Clicked += (sender, e) =>
        {
            if (ParentViewController is MainNavigationController)
                (ParentViewController as MainNavigationController).ToggleMenu();
        };

        return item;
    }
}

"MainNavigationController"가 빨간색으로 강조 표시 될 염려는 없습니다. 다음 단계에서 추가 할 것입니다.

  1. 이제 "Main.storyboard"파일을 엽니 다.

a) 하나의 UIViewController 추가 :

이 이름으로 "Class"및 "StoryboardID"필드 채우기 : "FirstViewController"

b) 그 후 루트 UIViewController가있는 탐색 컨트롤러를 추가합니다.

이 이름으로 "Class"및 "StoryboardID"필드를 채 웁니다. 탐색 컨트롤러의 "MainNavigationController"

이 이름으로 "Class"및 "StoryboardID"필드를 채 웁니다. 루트 컨트롤러의 경우 "DetailsViewController"

Xamarin (또는 Visual) Studio는 위의 컨트롤러에 대한 코드 숨김 클래스를 만듭니다.

여기에 이미지 설명을 입력하십시오.

  1. 이제 "FirstViewController"클래스를 열고 아래 코드를 붙여 넣습니다.
public partial class FirstViewController : UIViewController
{
    public FirstViewController (IntPtr handle) : base (handle)
    {
    }

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

    void createNavigationFlyout()
    {
        var navigation = new FlyoutNavigationController
        {
            //Here are sections definied for the drawer:
            NavigationRoot = new RootElement("Navigation")
            {
                new Section ("Pages") 
                {
                    new StringElement ("MainPage")
                }
            },

            //Here are controllers definied for the drawer (in this case navigation controller with one root):
             ViewControllers = new[] 
             {
                     (MainNavigationController)Storyboard.InstantiateViewController("MainNavigationController")
             }
        };

        View.AddSubview(navigation.View);
   }
}
  1. "MainNavigationController"클래스를 열고 아래 코드를 붙여 넣습니다.

    public partial class MainNavigationController : UINavigationController
    {
         public MainNavigationController (IntPtr handle) : base (handle)
         {
         }
         //Responsible for opening/closing drawer:
         public void ToggleMenu()
         {
             if (ParentViewController is FlyoutNavigationController)
             (ParentViewController as FlyoutNavigationController).ToggleMenu();
         }
     }
    
  2. "DetailsViewController"라는 마지막 클래스는 다음과 같아야합니다.

public partial class DetailsViewController : NavigationDrawerController
{
    public DetailsViewController (IntPtr handle) : base(handle)
    {
    }
}

"DetailsViewController"는 처음에 만든 "NavigationDrawerController"에서 파생됩니다.

그게 전부 야. 이제 원하는대로 서랍을 사용자 정의 할 수 있습니다. 제 GitHub에서 준비된 샘플을 찾으십시오 :

https://github.com/Daniel-Krzyczkowski/XamarinIOS/tree/master/Xamarin.iOS.NavigationDrawer



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow