質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

OpenGL

OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Q&A

解決済

2回答

1881閲覧

iOSアプリの64bit化で詰まった所。OpenGL(EAGLView)とRootViewControllerの問題

kmiura

総合スコア16

Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

OpenGL

OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

0グッド

0クリップ

投稿2017/10/02 08:07

iOSアプリの64bit化が必要なのですが、エラーが解決できずに困っています。
制作当時のプログラマーがいない事で私に回ってきた昔のアプリです。
OpenGLを使って2009年に作ったアプリなのですが、
まず当時のまま実行するとビルド自体は通るのですが、起動直後に
「reason: 'Application windows are expected to have a root view controller at the end of application launch'」
のエラーで止まります。

問題の位置にルートビューコントローラーのセット構文

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { UIViewController *vc = [[UIViewController alloc] init]; [self.window setRootViewController:vc];

を書けば動くようになるのですが、新しいビューが上に来るせいか、従来の操作系部分

EAGLViewに書いていた

  • (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {

等のタッチ系全てが反応しなくなってしまいました。
隠したり(self.window.hidden = YES;)
タッチの検知をしない(self.window.userInteractionEnabled = NO;)
ようにしても上手く行きません。
新規でプロジェクトを作って見るとstoryboardが出来ますが、当時はxibで作っていたようです。
私もXcode自体に触れてこなかったせいか、storyboardも理解しきれず、困っています。
従来のEAGLViewをそのままsetRootViewControllerの乗せられればと思いますが、新規で作ってみたりしても結局上手く行かず。
どうしたら良いでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Stripe

2017/10/02 08:23

RootViewControllerのクラスは、UIViewControllerで合っているんですか?
kmiura

2017/10/02 08:33

はい。メインとなるUIWindowのrootViewControllerにUIViewControllerを設定しています。rootViewControllerは、UIWindowのiOS3.0から導入されたプロパティです。
guest

回答2

0

ベストアンサー

状況がイマイチ分かりませんが、

を書けば動くようになるのですが

で、rootに設定したViewControllerのviewにEAGLViewを乗せればいいのではないでしょうか?

EAGLViewは元々どこに(どのタイミングで)乗せていたのでしょうか?

投稿2017/10/02 08:24

fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kmiura

2017/10/02 09:01

RootViewControllerにOpenGLをとばかりに考えてしまっていて、変に引っかかってしまいました。 無事ViewControllerのviewにEAGLViewを乗せる事が出来ました
guest

0

よくわからないんですが…
「新しく作る」のではなく「既存の物」でルートビューコントローラの設定をすればいいんじゃないかと思います。
例えば

objective

1[self.window addSubview:navigationController.view]; 2 3```のような古い書き方をしている所があると思いますので 4```objective-c 5[self.window setRootViewController:navigationController]; 6 7```という記述に変更してみてください

投稿2017/10/02 08:30

HiroshiWatanabe

総合スコア2160

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問