20

新しいView Controllerにプッシュし、データを渡しています。アプリケーションを実行すると、ボタンを押して新しいビューに移動できますが、画面が完全に黒くなります。どんな助けでも大歓迎です。

- (IBAction)button:(id)sender {

    NSString *firstField = self.field.text;
    NSString *secondField = self.field2.text;

    self.resultsArray = [[NSArray alloc] initWithObjects:firstField, secondField, nil];

    NSUInteger randomResult = arc4random_uniform(self.resultsArray.count);
    self.label.text = [self.resultsArray objectAtIndex:randomResult];

    ImagesViewController *ivc = [[ImagesViewController alloc] init];
    ivc.label = self.label.text;
    [self.navigationController pushViewController:ivc animated:YES];

}
4

7 に答える 7

2

プッシュしているビュー コントローラーには、フレーム ディメンションが設定されていません。オブジェクトに対して指定された init を呼び出すことを常にお勧めします。View Controllerの場合、指定されたinitメソッドは

- (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle

あなたがxibを持っているなら、それを次のように割り当てます

ImagesViewController *ivc = [[ImagesViewController alloc] initWithNibName:<your xib> bundle:[NSBundle mainbundle];

カスタム ビューを使用している場合は、フレーム ディメンションを割り当ててサブビューとして追加します。

于 2013-07-25T15:29:12.580 に答える
1

私は良いものを手に入れました:

提示しようとしているviewControllerの上部に、適切なスーパークラス、デリゲートなどを実装していることを確認してください。すなわち

UINavigationController をまったく使用/実装していませんでした

class TMDetailBlogViewController: UINavigationController {
  //code goes here
}

class TMDetailBlogViewController: UIViewController {
  //code goes here
}
于 2016-10-21T20:54:28.603 に答える
0

通常、次を呼び出して別のビュー コントローラーに移行します。

initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

カスタム UIViewController で。

xib ファイルを使用していない場合は、問題がない可能性があります。ImagesViewController のコンストラクター内で UI 要素を動的に作成していますか?

于 2013-07-25T15:18:32.903 に答える