iOS에 렌더러 버튼이 있습니다. 내가하려고하는 것은 스 와이프 제스처가 생기면 스택에 다른 페이지를 트리거하는 것입니다.Xamarin 페이지를 렌더러에서 바꾸기 버튼
내 MainPage에서이를 구현하면 Clicked는 곧장 해결됩니다. "this"를 사용할 수 있기 때문에
public class MainPage : ContentPage
{
public MainPage()
{
// Button bottom 1
var button = new Button {
Text = "button",
HeightRequest = 60,
HorizontalOptions = LayoutOptions.FillAndExpand,
VerticalOptions = LayoutOptions.CenterAndExpand,
};
button.Clicked += async (sender, e) => {
await this.Navigation.PushModalAsync(new nextPage());
};
}
}
그러나 iOS의 렌더링 된 버튼에서 어떻게 할 수 있습니까?
내 렌더러 버튼은 다음과 같이이다 :
public class MYButtonRenderer : ButtonRenderer
{
UISwipeGestureRecognizer swipeGestureRecognizerUp;
protected override void OnElementChanged (ElementChangedEventArgs<Button> e)
{
base.OnElementChanged (e);
swipeGestureRecognizerUp = new UISwipeGestureRecognizer (() => onSwipeUp());
swipeGestureRecognizerUp.Direction = UISwipeGestureRecognizerDirection.Up;
if (e.NewElement == null)
{
if (swipeGestureRecognizerUp != null)
{
this.RemoveGestureRecognizer (swipeGestureRecognizerUp);
}
}
if (e.OldElement == null)
{
this.AddGestureRecognizer (swipeGestureRecognizerUp);
}
}
private void onSwipeUp()
{
//here it's where I would like to change the page to a new one.
}
}
이 가능하다? 감사합니다.
답장을 보내 주셔서 감사합니다. 그러나 내 사용자 정의 단추 (단추보기) 및 내 단추를 내 단추가있는 경우 공유 프로젝트에서 사용자 지정 단추 유형 단추를 어떻게 가질 수 있는지 이해할 수 없습니다 내 단추 프로젝트 내 iOsProject. 내가 놓친 게 있니? – Loebre
나는 당신이하려는 것을보고 있습니다. 나는 그것을 테스트 할 수 없기 때문에 나의 맥에 있지 않다. 그러나 나는 나의 대답을 편집했다. 이제 버튼은 Button에서 상속받습니다. 이는 공유 된 Xamarin.Forms 버튼 유형입니다. 이것을 공유 프로젝트에 넣을 수 있습니다. 렌더러의 Model 속성을 사용하여 공유 Xamarin.Forms 컨트롤에 액세스하도록 iOS 렌더러의 코드를 변경했습니다. 작동하는지 알려주세요. :) –
이제 "((CustomButton) 모델) .FireSwipeUp();"에서 불평하고 있습니다. 이 문맥에 "모델"이 존재하지 않는다고 말합니다. 나는 다른 추악한 방식으로 작동하도록했습니다. 그러나 나는 당신이 제안하는 방식대로 그것을하고 싶습니다, 그것은 제 영리한 것보다 훨씬 영리합니다. – Loebre