[Xamarin] 자마린에서 팝업 띄우기

2016. 3. 8. 20:13Mobile

자마린에서는 DisplayAlert, DisplayActionSheet라는 2가지 팝업을 제공합니다. 이 팝업은 자마린이 지원하는 모든 플렛폼에서 적절하게 표현이 됩니다.

Displaying an Alert

자마린에서 팝업을 띄우기 위해서는 Page에서 DisplayAlert를 호출하시면 됩니다. Page 상에서 호출하지 않으면 Exception이 발생합니다.

DisplayAlert("확인", "작업이 중단되었습니다.", "확인");

팝업은 모달 팝업처럼 나타납니다. 만약 확인, 취소 등 사용자의 선택을 받기 위해서는 다음과 같이 확인, 취소에 해당하는 버튼 명을 제공하면 됩니다. 사용자의 선택에 따라 bool값을 반환하며, 값을 받기 위해서는 await 키워드를 제공해야 합니다.

async void OnAlertYesNoClicked (object sender, EventArgs e)
{
  var answer = await DisplayAlert ("확인", "작업을 중단하시겠습니까?", "확인", "취소");
  Debug.WriteLine ("Answer: " + answer);
}

Guiding Users Through Tasks

UIActionSheet는 iOS에서는 일반적인 UI로써 사용자가 N개의 항목중 하나를 선택할 수 있도록 해줍니다. Xamarin.Forms의 DisplayActionSheet는 이러한 UI를 모든 플렛폼에서 사용할 수 있도록 해줍니다. Android와 Windows 그에 맞는 컨트롤이 나타나게 됩니다.

async void OnActionSheetSimpleClicked (object sender, EventArgs e)
{
  var action = await DisplayActionSheet ("전송방법을 선택해주세요", "취소", null, "이메일", "트위터", "페이스북");
  Debug.WriteLine ("Action: " + action);
}

DisplayAlertSheet 실행결과

위에서 세번째 매개변수는 null로 지정되었지만, 이 값을 지정하면 destroy 버튼이 나타납니다. 아래의 예제를 보시면 쉽게 이해하실 수 있습니다.

async void OnActionSheetCancelDeleteClicked (object sender, EventArgs e)
{
  var action = await DisplayActionSheet ("저장하시겠습니까?", "취소", "삭제", "사진", "이메일 전송");
  Debug.WriteLine ("Action: " + action);
}

DisplayActionSheet 실행결과