現在のviewControllerを新しいものに置き換えようとしています。以前にこれを行うことができましたが、BAD_ACCESS に問題があります。
これは、現在のビューを新しいビューに置き換えたいときに実行するコードです。
(この関数は、ローカル プロパティ「self.some_data」(非アトミック、保持) を使用して呼び出されます)
-(void) labelSelected:(SomeDataObject*) some_data{
SomeViewController *viewController = (SomeViewController*)[[ClassManager sharedInstance] viewControllerForClassIdentifier:@"com.somename" fromPlistFileName:@"iPhoneScreenList"];
viewController.data = (NSObject*)some_data;
[some_data retain];
//[self.navigationController pushViewController:viewController animated:YES];
UINavigationController *tempNavigationController = self.navigationController;
[[self retain] autorelease];
[tempNavigationController popViewControllerAnimated:FALSE];
[tempNavigationController pushViewController:viewController animated:TRUE];
}
ここでは、すべて正常に動作します。問題は、新しい「viewController」をリリースするとクラッシュすることです。そして、私が選択した場合:
[tempNavigationController popViewControllerAnimated:TRUE];
コントローラーが置き換えられないという非常に奇妙な動作が発生し、rootController に戻ると、ナビゲーション バーに 2 つのテキスト レイヤーが表示されます。
そして、私がこれを行うと:
[tempNavigationController pushViewController:viewController animated:FALSE];
BAD_ACCESS が発生し、アプリケーションがクラッシュします。以前は機能していましたが、現在は機能していません。
私は何を間違っていますか?
ありがとう!