maui icon indicating copy to clipboard operation
maui copied to clipboard

Net 8: Page and control Unloaded events firing on iOS when navigating to another page

Open WebGoose opened this issue 1 year ago • 5 comments

Description

Since updating our app to Net 8, when navigating to a new page on iOS, the Unloaded and Loaded events for the starting page are firing, even though that page is still in the stack and is not actually unloaded. In fact, it's actually firing twice. The sequence goes: Navigate -> Unloaded -> Loaded -> Unloaded

This doesn't happen on Android and never happened on either platform in Net 7.

This is causing quite a big headache for us now because many of our pages have event and other subscriptions that get cleaned up in Unloaded when the page is removed from the stack / closed. As a result we now have event handlers and other subs being unregistered incorrectly, leaving the page in a broken / non-functional state when the user navigates back to it

I ran into a similar issue in this ticket

Steps to Reproduce

if using the included repro project:

  1. Run the UnloadedNet8 app on iOS and put breakpoints in the loaded and unloaded event handlers on MainPage
  2. Navigate away and back using the buttons
  3. You will see when you click the button on Main Page that Unloaded fires, then Loaded, then Unloaded, and then the page navigates

This does not happen on Android, and does not happen in the UnloadedNet7 app project at all on either platform

Link to public reproduction project repository

https://gooseza.visualstudio.com/MauiBugs/_git/UnloadedEventBug

Version with bug

8.0.20 SR4

Is this a regression from previous behavior?

Yes, this used to work in .NET MAUI

Last version that worked well

7.0.101

Affected platforms

iOS

Affected platform versions

iOS 17.3.1. Not sure if others are affected

Did you find any workaround?

Not one that I am happy with

I can possibly try re-registering my event handlers and subscriptions in Loaded or OnAppearing but this is not ideal as it will mean recreating them multiple times instead of just once when the page is created.

Relevant log output

No response

WebGoose avatar Apr 18 '24 13:04 WebGoose

Verified this issue with Visual Studio 17.10.0 Preview 3(8.0.20&8.0.7&8.0.3&8.0.0-rc.2.9530). Can repro on windows platform with sample project. image

Zhanglirong-Winnie avatar Apr 19 '24 03:04 Zhanglirong-Winnie

same issue

pulmuone avatar Jun 13 '24 02:06 pulmuone

@pulmuone @WebGoose can you test this on the latest 8.0.60 release?

PureWeen avatar Jun 15 '24 22:06 PureWeen

@pulmuone @WebGoose can you test this on the latest 8.0.60 release?

yes

pulmuone avatar Jun 16 '24 18:06 pulmuone

Verified this issue with Visual Studio 17.11.0 Preview 2.0 (8.0.60). Can repro on iOS platform with sample project. And it can not repro on .NET7.

kevinxufei avatar Jun 18 '24 09:06 kevinxufei