「.NET for iOSでStoryboardを使う」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
 
46行目: 46行目:
  
 
=== storyboardを編集する ===
 
=== storyboardを編集する ===
* Main.storyboardを開く
+
* Main.storyboardを開く (Xcodeで開く)
 
* Xcode右上の「+ボタン (Show Library)」からViewControllerを追加する
 
* Xcode右上の「+ボタン (Show Library)」からViewControllerを追加する
 
* ViewConttoler(iPhoneの絵)が表示されるので上部をクリックして選択する
 
* ViewConttoler(iPhoneの絵)が表示されるので上部をクリックして選択する

2024年7月10日 (水) 06:10時点における最新版


.NET for iOSの新規プロジェクトのテンプレートではAppDelegateのFinishedLaunching()でUIViewControllerを生成するようになっています。

Visual Studio for MacではStoryboardを利用できましたが、 強制移行先のVisual Studio CodeC# Dev KitではStoryboardを利用できなくなったので 「UIKitをSwiftUI風に使い、耐え難きを耐え、忍び難きを忍び、押さば押せ、引かば押せ、これ即ち自己滅却の精神なり」ということでしょう。

[Register ("AppDelegate")]
public class AppDelegate : UIApplicationDelegate {
	public override UIWindow? Window {
		get;
		set;
	}

	public override bool FinishedLaunching (UIApplication application, NSDictionary launchOptions)
	{
		// create a new window instance based on the screen size
		Window = new UIWindow (UIScreen.MainScreen.Bounds);

		// create a UIViewController with a single UILabel
		var vc = new UIViewController ();
		vc.View!.AddSubview (new UILabel (Window!.Frame) {
			BackgroundColor = UIColor.SystemBackground,
			TextAlignment = UITextAlignment.Center,
			Text = "Hello, iOS!",
			AutoresizingMask = UIViewAutoresizing.All,
		});
		Window.RootViewController = vc;

		// make the window visible
		Window.MakeKeyAndVisible ();

		return true;
	}
}

こんなのやってられないのでStoryboardを使うように変更する。 なお、2024年7月時点のC# Dev Kitの「開発版」ではStoryboardが扱えます。

大雑把な手順[編集 | ソースを編集]

storyboardを追加する[編集 | ソースを編集]

「追加」「新しいファイル」「iOS」「iOS ストーリーボード」から「Main.storyboard」を追加する。

storyboardを編集する[編集 | ソースを編集]

  • Main.storyboardを開く (Xcodeで開く)
  • Xcode右上の「+ボタン (Show Library)」からViewControllerを追加する
  • ViewConttoler(iPhoneの絵)が表示されるので上部をクリックして選択する
  • Identity Inspectorを開きClass欄に「HomeViewController」と入力する
  • Attributes inspectorを開きView Controllerの「Is Initial View Controller」のチェックボックスにチェックを入れる

Info.plistを編集する[編集 | ソースを編集]

  • プロパティ「メインのストーリーボード ファイル ベース名」を追加する
  • 値を「Main」にする

AppDelegateを編集する[編集 | ソースを編集]

AppDelegateのFinishedLaunchingはtrueを返すだけにする。

[Register ("AppDelegate")]
public class AppDelegate : UIApplicationDelegate {
	public override UIWindow? Window {
		get;
		set;
	}

	public override bool FinishedLaunching (UIApplication application, NSDictionary launchOptions)
	{
		return true;
	}
}

おわり[編集 | ソースを編集]

ビルドしてアプリを起動してみる。