@@ -37,6 +37,12 @@ public PopupRenderer()
37
37
{
38
38
}
39
39
40
+ [ Preserve ( Conditional = true ) ]
41
+ public PopupRenderer ( UIViewController viewController )
42
+ {
43
+ ViewController = viewController ;
44
+ }
45
+
40
46
public void SetElementSize ( Size size ) =>
41
47
Control ? . SetElementSize ( size ) ;
42
48
@@ -134,18 +140,27 @@ void CreateControl()
134
140
void SetViewController ( )
135
141
{
136
142
IVisualElementRenderer currentPageRenderer ;
137
- var modalStackCount = Application . Current . MainPage ? . Navigation ? . ModalStack ? . Count ?? 0 ;
138
- var mainPage = Application . Current . MainPage ;
139
- if ( modalStackCount > 0 )
143
+ var page = Application . Current . MainPage ;
144
+ var modalStackCount = page ? . Navigation . ModalStack . Count ?? 0 ;
145
+ if ( modalStackCount > 0 && page is not null )
140
146
{
141
147
var index = modalStackCount - 1 ;
142
- currentPageRenderer = Platform . GetRenderer ( mainPage ! . Navigation ! . ModalStack ! [ index ] ) ;
148
+ page = page . Navigation . ModalStack [ index ] ;
149
+ currentPageRenderer = Platform . GetRenderer ( page ) ;
150
+ }
151
+ else
152
+ {
153
+ currentPageRenderer = Platform . GetRenderer ( page ) ;
154
+ }
155
+
156
+ if ( currentPageRenderer == null )
157
+ {
158
+ ViewController ??= page ? . CreateViewController ( ) ;
143
159
}
144
160
else
145
161
{
146
- currentPageRenderer = Platform . GetRenderer ( mainPage ) ;
162
+ ViewController ??= currentPageRenderer . ViewController ;
147
163
}
148
- ViewController = currentPageRenderer . ViewController ;
149
164
}
150
165
151
166
void SetEvents ( )
0 commit comments