0

myAppDelegate.m で:

MainViewController *mainViewController         = [ [MainViewController alloc] init];
UINavigationController *navController = [[UINavigationController alloc]
                                         initWithRootViewController:mainViewController];

[navController setNavigationBarHidden:YES];
[[self window] setRootViewController:navController];

MainViewController.m には特別なことはなく、ボタンに関連付けられたアクションは 1 つだけです。

- (IBAction)go:(id)sender {
   if (!whereamiViewController)
   {
      whereamiViewController = [[WhereamiViewController alloc] init];
   }
   [[self navigationController] pushViewController:whereamiViewController animated:YES];

}

WhereamiViewController.m には、UINavigationViewController で別の画面を表示するためのボタンが 1 つだけあります。

-(IBAction)showList:(id)sender
{

PointsViewController *container = [[PointsViewController alloc] init];
[[self navigationController] pushViewController:container animated:YES];
}

と:

@interface PointsViewController : UITableViewController

@end

すべて順調です。しかし、最後の画面である PointsViewController に到達し、WhereamiView に戻ると、アプリがフリーズし、Xcode が CoureFoundation の CFHas にトラップを表示します。

さて、Objective-C が php ではないことはわかっていますが、これは実に単純な例です。何が欠けているのでしょうか? 問題をデバッグする方法はありますか?

デバッガーは次のように述べています。

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-  [__NSCFType _forgetDependentConstraint:]: unrecognized selector sent to instance 

今朝、シミュレーター内でアプリを実行しましたが、クラッシュはありません!! それはどのように可能ですか?iPhone クラッシュ内で実行すると、シミュレーターではクラッシュしません。

4

3 に答える 3

0

[部分的に解決] これは非常に奇妙です: すべてをデバッグし、疑わしい宣言をすべて削除した後、何も改善されませんでした。同じクラッシュ SIGABRT。iPhoneとMacの両方を再起動した後、すべて問題ありません!

于 2012-11-28T10:45:42.160 に答える
0

ティムは正しいです。PointsViewController をポップすることも、私が行う方法です。

あなたのXcodeは何を言っていますか?デバッガの内容を教えていただけますか? これは、何が問題なのかを追跡するのに役立ちます。

于 2012-11-27T10:58:17.280 に答える
0

あなたが投稿したコードの外で問題が発生しているため、問題がどこにあるのか実際にはわかりません。何かが足りないかもしれませんが、に戻るときにアプリがクラッシュした場合、whereamiViewController実際にどのように戻るのですか? ここで詳細がどこにあるのかわかりません。

このnavigationControllersように、プッシュ (追加) またはポップ (削除)viewControllersして navcontroller ツリーを上下に移動します。この時点でアプリがクラッシュしているように見えるので、投稿する価値があるかもしれません。どこでコンテナをポップしていますか (PointsViewController *)。

whereamiViewController投稿したコードから、再度プッシュして に戻ろうとしている可能性があると思われます。

于 2012-11-27T10:38:05.110 に答える