Xamarin.iOS
Xamarin.iOS 탐색 창
수색…
통사론
- Flayout 탐색 구성 요소 : https://components.xamarin.com/view/flyoutnavigation
Xamarin.iOS 탐색 창
새 Xamarin.iOS 빈 프로젝트를 만듭니다 (단일보기 응용 프로그램).
"Components"폴더를 마우스 오른쪽 버튼으로 클릭하고 "Get More Components"를 선택하십시오.
"Mono.Touch.Dialog-1"참조를 추가하는 것을 기억하십시오 :
이제 프로젝트를 자세히 클릭하고 "NavigationDrawerController"라는 새로운 UIViewController를 추가하십시오.
이제 "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"가 빨간색으로 강조 표시 될 염려는 없습니다. 다음 단계에서 추가 할 것입니다.
- 이제 "Main.storyboard"파일을 엽니 다.
a) 하나의 UIViewController 추가 :
이 이름으로 "Class"및 "StoryboardID"필드 채우기 : "FirstViewController"
b) 그 후 루트 UIViewController가있는 탐색 컨트롤러를 추가합니다.
이 이름으로 "Class"및 "StoryboardID"필드를 채 웁니다. 탐색 컨트롤러의 "MainNavigationController"
이 이름으로 "Class"및 "StoryboardID"필드를 채 웁니다. 루트 컨트롤러의 경우 "DetailsViewController"
Xamarin (또는 Visual) Studio는 위의 컨트롤러에 대한 코드 숨김 클래스를 만듭니다.
- 이제 "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);
}
}
"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(); } }
"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