Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
5
Help us understand the problem. What is going on with this article?
@amay077

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

More than 3 years have passed since last update.

今日も小ネタです。

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
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
amay077
ランチの時は呼ぶといい!

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
5
Help us understand the problem. What is going on with this article?