0

Navigation Controller の一部として 2 つのビューがあります。

最初のビューで特定のアクションをトリガーして詳細ビュー コントローラーをロードするパブリック メソッドを使用して、Navigation Controller のクラスを作成しました。詳細ビュー コントローラーをインポートしていますが、コードが機能していません。ログに記録しているため、メソッドが正しく呼び出されていることがわかります。

ここで何が間違っていますか?

#import <UIKit/UIKit.h>

@interface NearbyController : UINavigationController

- (void) nextpage;

@end

#import "NearbyController.h"
#import "DetailView.h"

@implementation NearbyController


-(void) nextpage {
    NSLog(@"working");

    DetailView *nextView = [[DetailView alloc] init];
    [self pushViewController:nextView animated:YES];
}

@end
4

3 に答える 3

0

ストーリーボード ID を設定している場合は、これを行うことができます

DetailView *nextView = (DetailView *)[self.storyboard instantiateViewControllerWithIdentifier:@"DetailViewControllerID"];
[self pushViewController:nextView animated:YES];

XIBからロードしたい場合は、呼び出すことができます

DetailView *nextView = [[DetailView alloc] initWithNibName:@"MyDetailViewControllerID" bundle:nil];
[self pushViewController:nextView animated:YES];

それが役に立てば幸い!

于 2013-06-16T20:59:36.350 に答える
0

ストーリーボードを使用している場合は、DetailViewViewController の ID インスペクターでストーリーボード ID を設定します。

次に、View Controller を次のようにインスタンス化します。

 UIStoryboard *sb = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
 DetailView *nextView =[sb instantiateViewControllerWithIdentifier:@"DetailViewViewController"];
 /* your identifier is your storyboard id*/
 sb = nextView.storyboard;

次に、View Controllerをプッシュできるはずです。私はまだこれに慣れていませんが、これが役立つことを願っています!

于 2013-06-16T21:54:11.763 に答える
0

プログラムでView Controllerを初期化する場合は、このinitを使用する必要があります。

于 2013-06-16T20:49:05.667 に答える