これは私の最初の投稿ですが、このコミュニティのメンバーからの多くの質問と回答の助けを借りて、プロジェクトをほぼ完了しました。ブランチビューコントローラを皮肉って押す
私は尋ねているものに似た複数のスレッドを読みましたが、メソッドは全く異なりました。これまでのコードはありませんでした。基本的には
(私のコードは複雑な混乱の中に素敵な蛇のような降下を含むが、適用可能なスニペットは、要求に応じて設置されるので、私はこれを言う)、私の問題は、私は
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
を呼んでいるということです私のviewcontrollerをシミュレータにプッシュし、NSLogsは私が必要とする文字列を美しく変更しましたが、それは空白のビューをプッシュします!その実行のコードは、ビューコントローラ変数を一定にします。
UIViewController *viewController = [[xSheetMusicViewController alloc]initWithNibName:nil bundle:nil];
だから私は何しているのですか?だから私はUIViewcontrollerをif-then、if-else-thenステートメントにすることで、特定の行が選択されているかどうか(標準のもの)によって異なるビューをプッシュする古いメソッドに戻りました。これは完全にロードされた文字列で新しいビューをプッシュしましたが、NSLogは1つの文字列だけを何度も繰り返しました!そして、最悪の部分は、私のアプリがSIGABRT、またはEXC_BAD_ACCESSを呼び出してrootviewcontrollerに戻ろうとしたときでした。 (ここでは該当するコードです):
UIViewController *viewController = [[[UIViewController alloc]init]autorelease];
if (indexPath.row == 0 && indexPath.section == 0) {
appDelegate.baseURL = @"mussette.pdf";
viewcontroller = [[xSheetmusicViewController alloc]initwithnibname:nil bundle:nil];
}
else if (...)
//pushview, changestring, blah blah//
を今、私はそれがになっているように私の見解は、PDFをプッシュすることを好む、と正しい文字列値を持っている(私にSIGABRTまたはEXC_BAD_ACESSを与えていないが、それらはギブンスある)でしょうしかし、妥協は私の手の届かないところにあるようです。私はおそらく、私がやっている愚かなことが、1行のコードで解決できるかもしれないことは分かっていますが、今のところそれは絶望的です。
ありがとうございます。
編集:すべての質問に答えるために、はい、 (id)init メソッドが次のビューにあります。
EDIT 2:lostInTransitのリクエストにお答えして、いくつかの追加の詳細を追加する:それは場合に役立ちます
<else if (indexPath.row == 1 && indexPath.section == 0) {
appDelegate.baseURL = @"Importing PDF's.pdf";
はまた、出力はログを保持します: アプリケーションは、ターゲット上のゼロビューコントローラをプッシュしようとしました。
私はtableviewcellからビューをプッシュしようとすると、それはPDFを右に読み込んだので、私はそれを無視した。
なぜあなたはinitWithNbName:nilを呼び出していますか?あなたはインターフェイスビルダーを使ってXIBを持っていますか?もしあなたがそうであれば、どうしてあなたは@ "myXibFileName"で電話していませんか? – bryanmac
FWIW、nib名として 'nil'を渡すと、自動的にView Controllerのクラスと同じ名前のnibが検索されます。 –