0

そのため、initWithNibNameメソッドによって別のViewControllerに向かうIBActionを持つボタンがあります。すべてがNavigationControllerに埋め込まれています。

このViewControllerの.xibも作成しました。簡単なスクリーンショットを次に示します。

ここに画像の説明を入力してください

これが私のコードです:

.h

@interface ModeEmploiController : UIViewController
{
    IBOutlet UIScrollView *scrollView;
    UITextView *vueOffres, *vueInfos, *vueGrilles;
}

@property (nonatomic, retain) IBOutlet UIScrollView *scrollView;

.m

@implementation ModeEmploiController

@synthesize scrollView;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) 
    {
        [scrollView setScrollEnabled:YES];
        [scrollView setContentSize:CGSizeMake(320, 529)];
        // Here I define vueOffres, vueInfos and vueGrilles and for each of them :
        [self.view addSubview:vueGrilles/vueInfos/vueOffres];
    }
}

しかし、アプリを実行すると、スクロールが有効にならず、ナビゲーションコントローラーのナビゲーションバーがありません。何が起こっていますか?

4

3 に答える 3

2

ScrollView私のコンテンツビューと呼ばれるものの中に別のビューを追加します。やる

self.scrollView.contentSize = self.contentView.frame.size;

ナビゲーションバーの場合、uinavigationコントローラーが必要であり、コントローラーをナビゲーションコントローラーのrootviewコントローラーにする必要があります。このような

-(IBAction)MyButton:(id)sender
{
    MyViewController *controller = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil];
    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:controller];
    [self.navigationController presentModalViewController:navController animated:YES];
}
于 2012-05-25T09:27:23.007 に答える
1

ModeEmploiControllerからあなたを削除しますxibが、その子Viewとを保持しScrollViewます。

次に、クリックして、右側のパネルのIDインスペクターからFile's Owner配置します。ModeEmploiController

次に、右クリックして、 toとtoFile's Ownerのプロパティを接続します。viewViewscrollViewScrollView

于 2012-05-25T09:12:51.217 に答える
1

初期化コードのメソッドが間違っています。

ストーリーボードを使用しているため、ViewControllerはnibファイルからアーカイブ解除されています。コントロールを初期化する正しい場所は、awakeFromNibメソッド内です。

スクロールビューにIBOutletプロパティを設定し、ストーリーボードに接続していることを確認してから、次の手順を実行します。

- (void)awakeFromNib {
    [self.scrollView setScrollEnabled:YES];
    [self.scrollView setContentSize:CGSizeMake(320, 529)];
    // Here I define vueOffres, vueInfos and vueGrilles and for each of them :
    [self.view addSubview:vueGrilles/vueInfos/vueOffres];
}

それはあなたが追加しているサブビューの問題を残すだけです。何vueGrilles/vueInfos/vueOffresですか?このビューをviewDidLoadメソッド内で適切に作成し、このイニシャライザーではなく、そこにサブビューとして追加する必要があります。

于 2012-05-25T09:29:47.170 に答える