Skip to content

Commit 17c04dc

Browse files
committed
fix(NativeFramePresenter): [iOS] Fix a bug where pre-populated frames would log errors when displayed.
1 parent 8e2d7b1 commit 17c04dc

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

src/Uno.UI/Controls/NativeFramePresenter.iOS.cs

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,8 +122,21 @@ private void InitializeController(Frame frame)
122122

123123
if (_frame.Content is Page startPage)
124124
{
125-
var viewController = new PageViewController(startPage);
126-
NavigationController.PushViewController(viewController, false);
125+
// When the frame already has content, we add a NavigationRequest in the PageViewController's AssociatedRequests.
126+
// Not doing this results in log errors from WillShowViewController and DidShowViewController (the ones about AssociatedRequests being empty).
127+
// Then, we push the PageViewController without animations (because the page is already present in the Frame).
128+
129+
var pageViewController = new PageViewController(startPage);
130+
var navigationEventArgs = new NavigationEventArgs(
131+
_frame.CurrentEntry.Instance,
132+
NavigationMode.New,
133+
_frame.CurrentEntry.NavigationTransitionInfo,
134+
_frame.CurrentEntry.Parameter,
135+
_frame.CurrentEntry.SourcePageType,
136+
null
137+
);
138+
pageViewController.AssociatedRequests.Add(new NavigationRequest(_frame, navigationEventArgs));
139+
NavigationController.PushViewController(pageViewController, false);
127140
}
128141

129142
_controllerDelegate = new ControllerDelegate(this);

0 commit comments

Comments
 (0)