Lifecycle
Concepts
Implementation policy
Example code
[AssetName("TestPage")]
public class TestPageLifecycle : LifecyclePageBase
{
// ์์ฑ์์์ ๋ฐ๋ ๊ฒ์ ์ ์ธํฉ๋๋ค.
private readonly TestPageView _view;
private readonly PageEventPublisher _publisher;
private readonly ModalManager _modalManager;
// ์์ฑ์ ์ธ์ ์
[Inject]
public TestPageLifecycle(TestPageView view, PageEventPublisher publisher, ModalManager modalManager) : base(view)
{
_view = view;
_publisher = publisher;
_modalManager = modalManager;
}
// ํ๋ฉด ์ ํ ์ ํ์ด๋ฐ์ View ์ด๊ธฐํํ๊ธฐ
protected override UniTask WillPushEnterAsync(CancellationToken cancellationToken)
{
var testModel = new TestPageModel();
_view.SetView(testModel);
return UniTask.CompletedTask;
}
// ํ๋ฉด ์ ํ ํ ๋ฒํผ ์ด๋ฒคํธ ๋ฑ๋กํ๊ธฐ
public override void DidPushEnter()
{
base.DidPushEnter();
// ํ์ด์ง ํ์
_view.OnClickPage.Subscribe(_ => {
_publisher.SendPushEvent(new NextPageBuilder());
});
// Modal ํ์
_view.OnClickModal.Subscribe(_ => {
_modalManager.Push(new NextModalBuilder()).Forget();
});
}
}Last updated