0

私はうまく機能するこのコードを持っていますが、好奇心からこのメソッドの単語をどのように置き換えることができselfますか?これはところでナビゲーションアプリであり、それを置き換えるためにあらゆる種類のメソッドを試しています.

ビューコントローラー1

  [self.navigationController popViewControllerAnimated:YES];

これが私が試した1つの方法です、

UIViewController *vc;

    vc = [[Viewcontroller1 alloc] initWithNibName:nil bundle:nil];
    [vc.navigationController popViewControllerAnimated:YES];
4

3 に答える 3

5

交換不可selfです。JAVAselfkeywordようなものだからです。this keyword

要するに、Apple / iOSは、誰でも変更できる機能の種類を証明していません。


                                      **EDIT**

あなたのコードから:

UIViewController *vc;

    vc = [[Viewcontroller1 alloc] initWithNibName:nil bundle:nil];
    [vc.navigationController popViewControllerAnimated:YES];

オブジェクトを作成Viewcontroller1し、別のviewControllerに移動して書き込みを行うための最良の方法

Viewcontroller1 *objVC = [[Viewcontroller1 alloc] init]; 
[self.navigationController pushViewController: objVC animated:YES];
于 2013-03-22T05:20:14.990 に答える
0

以下のコード行を誤って解釈しています。

[self.navigationController popViewControllerAnimated:YES];

この行は基本的に何をしますか。現在の NavigationViewControlelr の (つまり、 self.navitionController ) スタックから viewController を削除します。

スタック - 基本的に、viewControllerとそれを に作成view Controllerし、に従ってnavigationControllerそれをnavigation controller追加するか、 を管理することができます。viewControllerStackViewController in stack's Way

そして、あなたの下のコード行について

 UIViewController *vc;

 vc = [[Viewcontroller1 alloc] initWithNibName:nil bundle:nil];
 [vc.navigationController popViewControllerAnimated:YES];

なぜナビゲーションViewControllerからViewControllerを削除して作成しているのか。メモリのオーバーヘッドが発生します

と の交換についてselfself上記の「iPatel」のように置き換えることはできません 。

于 2013-03-22T05:37:48.807 に答える
0

self「オブジェクトか何か」と置き換えたいと言ったら、オブジェクトself です。self という単語は、関数が含まれるクラスの現在のインスタンスを指します。置換することはできません。selfこれは、UIViewController サブクラスの現在のインスタンスを参照していないためです。

あなたの例がうまくいかない理由:

UIViewController *vc;

    vc = [[Viewcontroller1 alloc] initWithNibName:nil bundle:nil];
    [vc.navigationController popViewControllerAnimated:YES];

Viewcontroller1クラスの新しいインスタンスを参照しているためです。現在のビューコントローラーに追加していないため、ポップオーバーは表示されません。表示されない別のインスタンスに追加しています。

于 2013-03-22T05:46:32.593 に答える