5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

XamarinAdvent Calendar 2013

Day 13

Xamarin.iOS で ViewController の名称を変える

Last updated at Posted at 2013-12-12

今日も小ネタです。

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 の名称を指定しているのでそこも修正します。

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 だけで完結できるので簡単ですが、まだα版です。はやくリリースされるといいですね。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?