iOSアプリ開発初心者です。
初めてアプリを起動するときに、ビューを"passtest"に移したいのですが、以下のコードを書いたんですが、動作しません。メインコントローラの.mファイル((void)viewDidLoadメソッドの中で)で書きました。
int firstvalue = 1;
if (firstvalue==1) {
passtest *controller =
[[passtest alloc]
initWithNibName:@"passtest" bundle:nil];
controller.modalTransitionStyle =
UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:controller
animated:YES];
[controller release];
}
IBActionにしてアクションをボタンに割り当てれば、問題なくビューを移せます。
起動時にどうやってビューを移すことができるのでしょうか?
iOSアプリに詳しい方がいらっしゃいましたら、ご回答をよろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
アプリを起動したときに、View ControllerのviewDidLoadメソッドが呼ばれるとは、限らない。
そういうことです。正確にいうと、アプリを起動すれば、View Controllerは生成初期化されるので、かならずviewDidLoadメソッドは呼ばれます。が、iOS 4になって、マルチタスクが導入されてから、アプリが言葉の定義どおりに起動を行うのではなく、ただバックグラウンドに回って、休止しているだけというケースが出てきました。バックグラウンドからアプリが表に出てきたとき、View ControllerのviewDidLoadメソッドは呼ばれません。こういう場合は、viewDidLoadの代わりに、「viewDidAppear:」、「viewWillAppear:」メソッドを使います。
あるビューを開いたとき、自動でほかのビュー(Modal View)が開くというインターフェイスは感心しません。アプリの操作は、ユーザが完全に把握し、支配下にあるという幻想(あるいは錯覚)を、ユーザに与えることが、アプリ開発者のとるべき基本方針です。ユーザが「この画面を開く」という操作を行ったのに、それとは異なる画面が表示されては、ユーザがそのアプリを支配しているという安心感を奪ってしまいます。アプリを使うことに不安を覚えれば、ユーザはそのアプリを嫌うようになり、使わなくなってしまうでしょう。
クラス名は大文字で始めるようにしてください。Objective-Cの命名規則です。その規則に従わなくても、ビルドはできますが、あとからそのコードソースを読む人間が、混乱してしまいます。Objective-Cには、クラスメソッドと、インスタンスメソッドがあり、メソッドの対象が、クラスであるかインスタンスであるかという区別がひじょうに重要です。クラスとインスタンスの区別をあいまいにしていると、プログラムはかんたんに破綻します。
passtest *controller =
[[passtest alloc]
initWithNibName:@"passtest" bundle:nil];
このコードは、
Passtest *controller =
[[Passtest alloc]
initWithNibName:@"passtest" bundle:nil];
としてください。
ご回答ありがとうございます。
いろいろご親切に説明していただいてありがとうございます。
実は、実装したいのはアプリの初めての起動時に「パスワード設定画面」を表示して、次の起動時には、アプリにアクセスするにはそのパスワードを入力しないと行けないという設定です。それはどうやって実装すればよろしいのでしょうか。
ゼロからiphoneプログラミングを始めますので、まだ基礎しかできません。さっき述べた機能についておわかりでしたら、教えていただけませんか。
No.2
- 回答日時:
> ゼロからiphoneプログラミングを始めますので、まだ基礎しかできません。
そういう段階のひとが、パスワード認証の画面をどうのこうのというのは、ギャップがありすぎませんか?
すくなくともView Controllerを使った画面遷移のメカニズムを、実践的に学ぶことを優先して、順々にパスワード認証までステップアップしていくべきではないでしょうか?
さきの回答でも書いたように、アプリが起動したとき、View Controllerが呼び出されたとき、アプリがバックグラウンドに回ったとき、Viewが表示されたとき、あるいは非表示になったとき、どういうメソッドが呼び出されるのか、どういうDelegateが発生するのか、Notificationが発信されるのか、そういうイベントで駆動するアプリケーションのふるまい全体を、おおまかでも把握できるように、まずなりましょうよ。そうすれば、ばくぜんとでもどういうプログラムを、どこに仕込んでいけばいいか、イメージができるようになるでしょう。
私ならば、すくなくともパスワードを暗号化してどこかに保存しておくメカニズムをマスターしないと、パスワード認証を組みこもうとは考えません。
ご回答ありがとうございます。
>そういう段階のひとが、パスワード認証の画面をどうのこうのというのは、ギャップがありすぎませんか?
確かにそうですね。3つのアプリの開発を任されたんですが、上司が急かして一つ目のアプリを早く終えてって。もともとウェブデザインしかしていなかった私は、マック環境に慣れているので「iOS開発を勉強して」と頼まれました。
それで、今海外にいるんですが、日本からiOS開発の本を取り寄せたんですが、まだ届いていないので、インターネットのあちこち情報を収集して勉強しようと思っているんですが、詳しい説明はあまり見つかりません。とにかく基礎をしっかり勉強してパスワード管理のレベルに着いたら、問題がありましたら、またお尋ねさせていただきます。
>私ならば、すくなくともパスワードを暗号化してどこかに保存しておくメカニズムをマスターしないと、パスワード認証を組みこもうとは考えません。
ウェブサイトのデータベース方式でパスワードをハッシュにしてアプリのどこかの安全な場所に保管するだけでいいんじゃないでしょうか?
ご迷惑をおかけしますが、またよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(スマートフォン・携帯電話・VR) Android からiPhoneに乗りかえます。データを移動させるのは"iOSへ移行"というアプリを 4 2022/06/02 21:43
- Web・クリエイティブ 【 3DCGソフト⠀MAYAについての質問 】 MAYAでビューからイメージプレーンを読み込むと、ビ 1 2023/07/09 02:50
- デスクトップパソコン ん~…分からん 7 2022/06/10 10:47
- Android(アンドロイド) 初めて使ったSDカードがアプリを移動するのに対応しておらず、表示が移動出来ると思って移動した結果、移 3 2023/03/06 22:03
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- iPhone(アイフォーン) iPhoneのメールについて質問です。 先程iPhoneの手紙マーク✉のアプリに入っているメールがま 1 2022/11/29 03:09
- ニュース・地域情報 Report@という位置情報アプリについて詳しい方に質問です。 1 2023/04/11 14:43
- 格安スマホ・SIMフリースマホ iPhoneからAndroidのデータ移行について教えてください。 アプリが移行できるかはiOSでも 4 2023/06/08 22:03
- Excel(エクセル) Excelで、社外秘(閲覧のみ)と表示され、共有者が編集出来ないのですが 4 2023/06/20 17:54
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CloseとDisposeの違い
-
C# 超初心者です。 this.Refres...
-
[C#]FormクラスのShowメソッド...
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
switch の範囲指定
-
【Excel】特定の文字を含むセル...
-
VBA エンターキーでイベントに...
-
アクセスVBAのMe!と[ ]
-
VBAにてメッセージボックスを最...
-
エクセルVBAで、MsgBox やInput...
-
Do~Loopした回数をカウントしたい
-
Excelシート上のマクロを登録し...
-
「PC Helpsoft Driver Updated...
-
「using Windows」でエラーが出る
-
VBの質問#if 0 then ってどう...
-
EXCEL VBA マクロ 実行する度に...
-
DoEventsがやはり分からない
-
サブフォームのイベント取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CloseとDisposeの違い
-
C# 超初心者です。 this.Refres...
-
DLL内のイベントをハンドリング
-
C#のインスタンスを参照渡ししたい
-
コールバックでイベントを使う...
-
C#で引数を渡して、スレッド用...
-
フィールド(メンバ変数)のプリ...
-
Try~Catch、Finallyについて。
-
[C#]FormクラスのShowメソッド...
-
vb.net フォームアプリケーシ...
-
どういうプログラムで組みます...
-
OCXのメソッドの引数に文字列を...
-
objective-cにはCのような関数...
-
「ご処理進めて頂きますようお...
-
メルカリのメルカードで買い物...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
Excelシート上のマクロを登録し...
-
エクセルVBAで、MsgBox やInput...
-
【Excel】特定の文字を含むセル...
おすすめ情報