0

私がこれを正しく行っているかどうかさえわかりませんが、これが私がやろうとしていることです。私はテーブル ビューを含むストーリーボードを持っています。また、ストーリーボード内に別の ViewController もあり、基本的に、テーブル ビューで選択されているものの詳細を表示します。ストーリーボードのテーブル ビューと詳細ビューの間にシークはありません。あるべきですか? - そして、この詳細ビューを処理するクラスを作成しました。

だから私はこれを私のdetailViewController.hに持っています

#import <UIKit/UIKit.h>

@class Profile;

@interface MedStaffDetailViewController : UIViewController

@property (weak, nonatomic) IBOutlet UIImageView *profileImage;

@property (weak, nonatomic) IBOutlet UIBarButtonItem *profileMobile;

@property (weak, nonatomic) IBOutlet UIBarButtonItem *profilePhone;

@property (weak, nonatomic) IBOutlet UIBarButtonItem *profileEmail;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil detail:(Profile *)profile title:(NSString *)title;


@end

そして、これはその実装で:

#import "MedStaffDetailViewController.h"
#import "MedStaffViewController.h"
#import "Profile.h"

@interface MedStaffDetailViewController ()

@end

@implementation MedStaffDetailViewController
@synthesize profileEmail, profileImage, profileMobile, profilePhone;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil detail:(Profile *)profile title:(NSString *)title
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
        self.title = title;

    }
    return self;
}
@end

テーブルビューで行の選択を処理して、この詳細ビューに適切なデータを表示したいだけです-マスター/ビュータイプのアプリを単純に実行していたときにこれが機能していました-しかし、今はストーリーボードを使用しているので、学べる。

詳細ビューの ID インスペクターでクラスを MedStaffDetailViewController に設定し、テーブル ビュー コントローラーに次のように設定しました。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    // Navigation logic may go here. Create and push another view controller.
    /*
     <#DetailViewController#> *detailViewController = [[<#DetailViewController#> alloc] initWithNibName:@"<#Nib name#>" bundle:nil];
     // ...
     // Pass the selected object to the new view controller.
     [self.navigationController pushViewController:detailViewController animated:YES];
     */

    _showProfile = [_profileArray objectAtIndex:indexPath.row];
    NSLog(@"Selected: %@", [_showProfile lastName]);

    self.detailViewController = [[MedStaffDetailViewController alloc] initWithNibName:@"MedStaffDetailViewController" bundle:nil detail:_showProfile title:@"This is the title"];

    [self.navigationController pushViewController:self.detailViewController animated:YES];


}

これはすべて正常にビルドされますが、実行するとこの質問のタイトルにエラーがスローされます。ストーリーボードにシークを作成する必要がありますか? 行が選択されたときにこの詳細ビューを表示するにはどうすればよいですか。

4

1 に答える 1

2

あなたが使用することができます:

UIStoryboard*  sb = [UIStoryboard storyboardWithName:@"mystoryboard" bundle:nil];
UIViewController* vc = [sb instantiateViewControllerWithIdentifier:@"MedStaffDetailViewController"];
于 2012-10-16T03:23:50.357 に答える