分割ビューベースのアプリのベースを作成しようとしています。これは、過去2日間、機能しなかった、不完全だった、または古くなったチュートリアルをしばらく見て試してきたためです。
私が従うべきステップは何ですか、そして私が基本をセットアップした後:
- ツールバーのボタンの名前を変更するにはどうすればよいですか?
- ポップオーバーメニューを含めたいです。そのメニューの上部にある名前を変更するにはどうすればよいですか?
分割ビューベースのアプリのベースを作成しようとしています。これは、過去2日間、機能しなかった、不完全だった、または古くなったチュートリアルをしばらく見て試してきたためです。
私が従うべきステップは何ですか、そして私が基本をセットアップした後:
このチュートリアルは初心者を対象としています。しばらくの間Objective-cでコーディングしている場合は、おそらくここでは何も学習しません。
このチュートリアルを終えると、3つ(またはそれ以上)の異なるビューを備えた分割ビューベースのアプリと、アプリをナビゲートするためのポップオーバーメニューが表示されます。
ステップ1:Appleコードを入手する
AppleからMultiDetailsViewサンプルコードを入手(ダウンロード)します。 http://developer.apple.com/library/ios/#samplecode/MultipleDetailViews/Introduction/Intro.html
このコードは、2つの異なるビューを持つsplitviewベースのアプリケーションを提供します。このサンプルコードが存在することを知らない限り、これは大したことではありません。
ステップ2:すべてが機能することを確認する
Xcodeでプロジェクトを開きます。プロジェクトをビルドして実行し、すべてが正しく機能していることを確認します。アプリをビルドして実行しようとすると、次のエラーが発生しました。
XCode could not find a valid private certificate/valid key-pair for this profile in your keychain
私は自分の証明書が古くなっていることに気づきました(コードが直接アップルからのものだったので、これが明らかになっただけだと思いますか?)。同じ問題が発生した場合は、このスレッドを確認してください。または、アプリストアのXcodeから最新バージョンをダウンロードすることもできます。
とにかく、すべてが正しく機能している場合は、次の2つのビューが必要です。
ステップ3:独自のビューを追加する
パートa:ファイルを作成する
次に、いくつかのビューを追加します(これはおそらくあなたが探しているものです)。
[ファイル]->[新しいファイル...]に移動します。
Xcode 4を使用している場合:Objective-C Classを選択し、サブクラスとしてUIViewControllerを選択し、「TargetedForiPad」と「WithXIBforuserinterface」がチェックされていることを確認します。
Xcode 3を使用している場合:UIViewControllerサブクラスを選択し、[TargetedforiPad]と[WithXIBforuserinterface]をオンにします。
ファイルは左側のメニューに表示されます。ファイルが間違った場所にある場合は、適切なディレクトリにドラッグできます(.hと.hはクラスの下にあり、.xibはリソースの下にある必要があります)。
まず、SecondDetailViewController.hの内容を.hファイルにコピーし、SecondDetailViewController.mの内容を.mファイルにコピーします。SecondDetailViewController
最初にそれがあなたのファイルの名前を持っていると最初に言ったところはどこでも確認してください。
私の.hファイル:
私の.mファイル:
パートb:RootViewController.mコンテンツ
次に、RootViewController.mを開きます
現在、3つの元の.hファイルがインポートされています。作成したものを追加する必要があります。
次に、tableViewメソッドに移動し、戻り値を2から3に変更します。新しいビューを追加するたびに、この数を増やす必要があります。(つまり、このチュートリアルの完了後に別のビューを追加する場合は、それを4に変更します)。基本的に、このメソッドは、ビューの数を返すだけです。
そのすぐ下のメソッドは、メニューに表示されるものを処理します。ここでいくつかの変更を行う必要があります。if / elseステートメントに別のオプションを追加しているため、元のステートメントをelse
に変更しif else
、条件を指定する必要があります。この場合、2行目(インデックス1)かどうかを確認するだけです。(indexPath.row == 1)
次のメソッドは、表示するビューを処理します。if
別のステートメントを追加します。私が緑色で示している最初の行にはYourViewHereViewController
、.h/.mファイルの名前が含まれている必要があります。次に、私が@"YourViewHereViewController"
赤で示しているところに、.xibファイルの名前を付ける必要があります。
パートc:xib
最後になりましたが、xibファイルを処理する必要があります。最初にSecondDetailView.xibを開き、ビューをコピーします。次に、作成した.xibファイルに貼り付けます(最初に存在する可能性のあるものはすべて削除します)。テキストをダブルクリックすると、ビューのタイトルを変更できます。
最後に行うことは、行の接続です。Controlキーを押しながら[ファイルの所有者]をクリックし、ツールバーにドラッグしてtoolBarを選択します(これにより、RootControllerボタンがtoolBarに表示されます)。
コントロール-ファイルの所有者をもう一度クリックし、それをビューにドラッグしてビューを選択します。
今すぐ実行してビルドすると、すべてが機能するはずです。
この時点で私が持っていたいくつかの質問があります:
Q:ツールバーのボタンの名前を変更するにはどうすればよいですか? A:ツールバー(およびそのためのボタン)はRootViewController.mファイルから制御されます。このメソッドを探してください
- (void)splitViewController:(UISplitViewController*)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem*)barButtonItem forPopoverController:(UIPopoverController*)pc {
// Keep references to the popover controller and the popover button, and tell the detail view controller to show the button.
barButtonItem.title = @"Root View Controller";
self.popoverController = pc;
self.rootPopoverButtonItem = barButtonItem;
UIViewController <SubstitutableDetailViewController> *detailViewController = [splitViewController.viewControllers objectAtIndex:1];
[detailViewController showRootPopoverButtonItem:rootPopoverButtonItem];
}
注意してください、あなたが望むものbarButtonItem.title = @"Root View Controller";
に変更してください!@
注:このフィールドを空白のままにすると、ボタンは表示されません。
Q:ポップオーバーメニューの上部にある名前を変更するにはどうすればよいですか?
A:次の行を追加して、名前を宣言/変更します。self.title = @"Menu";
、RootViewController.mファイルの- (UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
メソッドで。