0

私はこのチュートリアルに従っています: http://www.appcoda.com/ios-programming-sidebar-navigation-menu/

ただし、画像に示すように、クラス ビュー コントローラーからサイド メニューにアクセスできる必要がありますここに画像の説明を入力。私の最初のView Controllerは、ユーザーがサーバーにログインする必要があるログイン画面です。この問題を解決するために、私は Reveal View Controller 内にプロパティを作成しました@property (strong, atomic, retain) NSString *SWSegueFrontIdentifier;。次に、getter と setter を使用して、どのビュー コントローラーを送受信するかを割り当てます。sw_firstビューコントローラーで最初の値を割り当てましたが、すべて問題ありません。2番目の画像に見られるクラスメートView ControllerのViewDidLoadで、私は割り当てsw_frontます。しかし、それを同じ関数内に設定した場合でも、プロパティを表示コントローラーから出力しようとすると、null が返されてしまいます。SWSegueFrontIdentifierただし、ビューコントローラーの内部を手動で切り替えると、sw_frontそれは問題なくセグエしますが、ログインコントローラーであるビューコントローラーをスキップしてしまいます。クラスメートのView Controllerからサイドメニューにアクセスする方法が必要なだけで、うまくいきませんでした。仕事に。ここに画像の説明を入力

このコードは null を返します。

[self.revealViewController setSWSegueFrontIdentifier:@"sw_front"];
    tempMenuButton.target = self.revealViewController;
    tempMenuButton.action = @selector(revealToggle:);

NSLog(@"reveal view controller prop2: %@", self.revealViewController.SWSegueFrontIdentifier);

これを機能させるために何ができるかについてのアイデアはありますか?

編集:私が考えることができるのは、ある種の記憶保持の問題だけですが、それを理解できないようです。

4

1 に答える 1

1

プロパティ @property を宣言した後 (strong、atomic、retain) NSString *SWSegueFrontIdentifier;

ゲッターとセッターを作成するために合成を使用した場合

@synthesize SWSegueFrontIdentifier = _SWSegueFrontIdentifier;

そして、あなたはただこのようにします

self.revealViewController.setSWSegueFrontIdentifier =@"sw_front";

これが私が思いついたものです。

于 2014-02-10T17:59:11.600 に答える