今日も小ネタです。

Xamarin.iOS の SingleView Application とか(storyboard じゃないやつ)でプロジェクトを作ると、唯一の ViewController の名称が 「プロジェクト名ViewController.cs(.xib)」ってなるんですけど、なんかカッコ悪い。

MainViewController とか、StartupViewController にしたいですね。その方法です。

1. プロジェクトを作る

「RenameTest」という名称でプロジェクトを作ると、ViewController は RenameTestViewController.cs になります。

2. クラス名をリファクタ機能で変更

RenameTestViewController.cs を開いてクラス名のところで右クリック→リファクタ。

MainViewController に変更します。

これにより以下のようにファイルが変更されます。(git status を晒すことでスペースを稼ごう…)

$ git status
 On branch master
 Changes to be committed:
	modified:   AppDelegate.cs
	renamed:    RenameTestViewController.cs -> MainViewController.cs
	renamed:    RenameTestViewController.designer.cs -> MainViewController.designer.cs
	modified:   RenameTest.csproj

3. xib ファイル名を変更する

RenameTestViewController.xib はリファクタに追従しないので、手動でファイル名を変更します。

それから、MainViewController のコンストラクタで、リテラルに xib の名称を指定しているのでそこも修正します。

csharp MainViewController.cs namespace RenameTest { public partial class MainViewController : UIViewController { public MainViewController() : base(“MainViewController", null) // ← ココ! { }

4. Xcode との連携確認

.xib ファイルをダブルクリックすると Xcode が起動します。これは OK。けどファイル一覧を見てみると…

RenameTestViewController.h ってファイルができてる!
MainViewController.h になってほしいのですが。。。

Xamarin Studio にもどって、「RenameTestViewController」 が残っているところを探します。

お前らか!

MainViewController.designer.cs は、マニュアルで修正してはいけないのですが、試しに直してみます。

MainViewController.xib 内の方も古い名前は抹殺しておきます。
これは Xamarin Studio ではソースコードエディタで開くか、別なテキストエディタで編集します。(これも推奨されない)

どちらも直したら、再度 MainViewController.xib を実行して Xcode を起動。

やったー、ようやく RenameTestViewController を抹殺できました。この状態で Xamarin 側との outlet の連携など、問題ないようです。

まあ、Xcode 用のプロジェクトファイルは Xamarin Studio が自動生成するもの(obj ディレクトリに作成される)で、名前が元のままでも問題はないです。

以上、手順をまとめてみましたが、経験的に、些細な変更でアプリが起動できなくなったりするので、こまめにコミットしておく事をおすすめします。

Storyboard のプロジェクトだったら、以前書いたように Xamarin Studio だけで完結できるので簡単ですが、まだα版です。はやくリリースされるといいですね。

Xamarin
XAC13
iOS
C#

published

Ads

Read more!

amay077

Microsoft MVP(Xamarin). フルリモートワーカー. Geospatial Mobile app developer. Love C#.

amay077 amay077