UIKitは、ソリューションのIOSプロジェクトにCIビルドを組み込みますが、ここに記載されている一般的なプロジェクトには組み込まれません。ここ に画像の説明を入力してください

上記のエラーが発生します。理由は何でも。App.Current.MainPage.DisplayAlertとPopupNavigation.Instance.PushAsync(new PopupPage());のため、iponeでアラートを実行するためにこれが必要です。Rg.Plugins.Popup.Pages.PopupPageの利用は機能していませんが、UIKitのアラートは、私が持っている別のIOSアプリで機能するので機能することはわかっています。

ちなみに、これは私のCIビルドではなく、ローカルでビルドされます

これがCIビルドの私のyamlで、非常に基本的なものです

手順:-タスク:XamariniOS @ 2 displayName:'Build Solution'入力:solutionFile:MileageManagerForms.sln configuration:'Ad-Hoc' clean:true workingDirectory:MileageManagerForms / MileageManagerForms.iOS

応答

UIKitアセンブリ参照を正しく追加したことを確認してください。

Microsoftのドキュメントによると:

プログラムで使用されているタイプまたは名前空間が見つかりませんでした。タイプを含むアセンブリを参照(-reference)するのを忘れたか、必要なusingディレクティブを追加しなかった可能性があります。または、参照しようとしているアセンブリに問題がある可能性があります。

UIAlertControllerStyleを使用して、表示するアラートのタイプを示します。これらのアラートタイプは次のとおりです。

•   UIAlertControllerStyleActionSheet
•   UIAlertControllerStyleAlert
        

簡単なアラートを表示するコードは次のとおりです。

okayButton.TouchUpInside += (sender, e) => {

    //Create Alert
    var okAlertController = UIAlertController.Create ("Title", "The message", UIAlertControllerStyle.Alert);

    //Add Action
    okAlertController.AddAction (UIAlertAction.Create ("OK", UIAlertActionStyle.Default, null));

    // Present Alert
    PresentViewController (okAlertController, true, null);
};

参照リンク:https ://docs.microsoft.com/en-us/xamarin/ios/user-interface/controls/alerts

更新:依存関係サービスを 使用してiOSプロジェクトにアラートを設定する回避策があります。

1.共有パッケージにインターフェースを作成します。

public interface IMessage
{
    void LongAlert(string message);
    void ShortAlert(string message);
}

2.iOSプロジェクトでは、それを実装する必要があります。

[assembly: Xamarin.Forms.Dependency(typeof(MessageIOS))]
namespace Your.Namespace
{
      public class MessageIOS : IMessage
    {
        const double LONG_DELAY = 3.5;
        const double SHORT_DELAY = 2.0;

        NSTimer alertDelay;
        UIAlertController alert;

        public void LongAlert(string message)
       {
           ShowAlert(message, LONG_DELAY);
       }
        public void ShortAlert(string message)
        {
           ShowAlert(message, SHORT_DELAY);
        }

        void ShowAlert(string message, double seconds)
       {
           alertDelay = NSTimer.CreateScheduledTimer(seconds, (obj) =>
          {
               dismissMessage();
          });
           alert = UIAlertController.Create(null, message, UIAlertControllerStyle.Alert);
        UIApplication.SharedApplication.KeyWindow.RootViewController.PresentViewController(alert, true, null);
    }

    void dismissMessage()
    {
        if (alert != null)
        {
            alert.DismissViewController(true, null);
        }
        if (alertDelay != null)
        {
            alertDelay.Dispose();
        }
    }
}
}

あなたは私たちのプロジェクトのどこでもアラートサービスを受けることができます。

DependencyService.Get<IMessage>().ShortAlert(string message); 
DependencyService.Get<IMessage>().LongAlert(string message);