Индекс выходил за пределы допустимого диапазона при переходе между страницами вперед и назадIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Индекс выходил за пределы допустимого диапазона при переходе между страницами вперед и назад

Сообщение Anonymous »


У меня есть проект, написанный на C# MAUI 8. Приложение создано с использованием Shell. Проблема возникает, когда приложение развертывается на iPhone или в симуляторе (VS2022 в сочетании с Mac с XCode). У меня никогда не было возможности получить некоторый опыт работы с устройствами Apple, поэтому каждый совет/подсказка будет для меня ценным.

Ситуация: для навигации между страницами я использую await Shell.Current.Navigation.PushAsync(somePage) и await Shell.Current.Navigation.PopAsync() .

Предположим, у меня есть страницы A, B и C. Используя методы, упомянутые выше, я хочу добиться такого потока навигации: A -(PushAsync)> B -(PushAsync)> C -(PopAsync и здесь возникает исключение)> B< /п> Сообщение: Индекс вышел за пределы допустимого диапазона. Должно быть неотрицательным и меньше размера коллекции. (Параметр «индекс»)

Источник: Microsoft.IOS

StackTrace: at ObjCRuntime.Runtime.ThrowException(IntPtr gchandle) в /Users/builder/azdo/_work/1/s/xamarin-macios/src/ObjCRuntime/Runtime.cs :строка 2594 в UIKit.UIApplication.UIApplicationMain(Int32 argc, String[] argv, IntPtr PrincipalClassName, IntPtr DelegateClassName) в /Users/builder/azdo/_work/1/s/xamarin-macios/src/UIKit/UIApplication.cs: строка 60 в UIKit.UIApplication.Main(String[] args, Type PrincipalClass, Type DelegateClass) в /Users/builder/azdo/_work/1/s/xamarin-macios/src/UIKit/UIApplication.cs: строка 94 в MyApp .Program.Main(String[] args) в X:\Projects\MyApp\Platforms\iOS\Program.cs:строка 13

Содержимое MyApp/Platforms/iOS/Program.cs

Программа общедоступного класса { static void Main(string[] args) { UIApplication.Main(args, null, typeof(AppDelegate)); } } Что мне теперь делать? Как отладить это исключение?

Я пытался заменить Push и Pops с помощью GoToAsyncs, но эффект тот же.

Весь код отлично работает на устройствах Android.

публичный частичный класс AppShell: Shell { общедоступная оболочка приложения() { ИнициализироватьКомпонент(); } } MauiProgram.cs
публичный статический класс MauiProgram { общедоступный статический MauiApp CreateMauiApp() { вар строитель = MauiApp.CreateBuilder(); строитель .UseMauiApp() .UseMauiCommunityToolkit() .ConfigureFonts(шрифты => { fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular"); fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold"); fonts.AddFont("FA6-Solid-900.otf", "FA6Solid"); }); вар а = Сборка.GetExecutingAssembly(); используя varstream = a.GetManifestResourceStream("MyApp.appsettings.json"); вар конфигурация = новый ConfigurationBuilder() .AddJsonStream(поток) .Строить(); builder.Configuration.AddConfiguration(конфигурация); builder.Services.AddSingleton(); builder.Services.AddTransient(); builder.Services.AddSingleton(); builder.Services.AddTransient(); вернуть строитель.Build(); } }
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»