「LoginView」を呼び出す現在のビューがありますがUIViewController
、私は入っていません。NSObject
クラスにいて、呼び出したいので、UIViewController
「MapView」と呼ばれる別のビューを表示します。これどうやってするの?
問題は上のスクリーンショットのようなものです。
「LoginView」を呼び出す現在のビューがありますがUIViewController
、私は入っていません。NSObject
クラスにいて、呼び出したいので、UIViewController
「MapView」と呼ばれる別のビューを表示します。これどうやってするの?
問題は上のスクリーンショットのようなものです。
このコードを試してください。お役に立ちますように……
ボタンクリックアクションでは、 UINavigationController と現在の ViewController を送信する必要があります。NSObject クラスがそのコントローラーを見つけられなかったためです。
ボタン アクションに次のコードを入力します。
[demo login_method_called:self.navigationController withCurrentViewController:self];
NSObject .h クラスに次のコードを追加します。
#import <Foundation/Foundation.h>
#import "Home_ViewController.h"
@interface Method_Action_class : NSObject
- (void)login_method_called:(UINavigationController*)navigation withCurrentViewController:(UIViewController*) controller;
@end
NSObject .m クラスに次のコードを追加します。
#import "Method_Action_class.h"
@implementation Method_Action_class
-(void)login_method_called:(UINavigationController*)navigation withCurrentViewController:(UIViewController*) controller
{
Home_ViewController *home = [[Home_ViewController alloc] initWithNibName:@"Home_ViewController" bundle:nil];
[navigation pushViewController:home animated:YES];
}
@end
コードをビルドします。
モデル内からView Controllerをインスタンス化して表示するべきではありません。ビューはモデルによって駆動される必要があります。
この場合LoginView
、あなたは出発点として言及しました。何らかの条件が満たされた場合 (おそらくログインの成功?)、それに応じて基礎となるモデルを更新し、MapView
.
中からLoginView
:
MapView *mapView = [[MapView alloc] init];
アプリでナビゲーション コントローラーを使用する場合:
[self.navigationController pushViewController:mapView animated:YES];
さもないと:
[self presentViewController:mapView animated:YES completion:<nil or block>];