0

NewViewController が ViewController のアニメーションを取得する理由がわかりません。私の NewViewController.xib のすべてが奇妙な動作をしています。たとえば、私の UITableView は、アニメーションや他のオブジェクトで簡単に表示されます。NewViewController を確認しましたが、ViewController に接続されていません。これを止める方法について何か提案があれば、よろしくお願いします。

ViewController.m

 - (void)viewDidLoad
 {
[super viewDidLoad];
 [self start];
  }

 -(void)start{
CGContextRef *imageContext = UIGraphicsGetCurrentContext();
[UIView beginAnimations:nil context:imageContext];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[UIView setAnimationDelegate:self];
image.alpha = 1;
image1.alpha = 1;
[self performSelector:@selector(change) withObject:nil afterDelay:3];
  }


 -(void)change{
  NewViewController *newViewController = [[NewViewController alloc]init];
  [self.navigationController pushViewController:newViewController animated:NO];
  }
4

2 に答える 2

0

新しいView Controllerは、View Controllerからのアニメーション中にプッシュされます。したがって、新しいコントローラーに影響する結果が得られても驚くことではありません。新しいView Controllerの作成とプレゼンテーションをアニメーションから移動する必要があります。

[UIView commitAnimations]また、アニメーション ブロックを適切に終了するために呼び出す場所がわかりません。

viewDidLoadまた、おそらくビューがまだ表示されていないときにインターフェイス アニメーションを呼び出しており、これもまた予測できない結果になります。代わりに、 で初期アニメーションを呼び出す必要がありますviewDidAppear

于 2013-10-19T16:00:13.550 に答える
0

明確にするために、あなたの NewViewController はどのように生まれていますか?

nib ファイルが設定されているように聞こえますが、initWithNibNamed とは対照的に、init を使用してコードで呼び出しています。

また、あなたのステートメントからそうであるかどうかはわかりませんが、navigationController の nib 内から NewViewController のインスタンスを含めたようにも思えます。

要約すると、NewViewController のインスタンスを作成するために 2 つまたは 3 つの異なる方法を使用している可能性があるように見えます。

あなたが作成したカスタム デザインの NewViewController.xib ファイルを使用することを想定してみましょう。もしそうなら、あなたはこれをしたいでしょう:

  1. NewViewController のクラスを持つナビゲーション コントローラーに ViewController オブジェクトがないことを確認してください。

  2. プッシュすると、navigationController が保持カウントを引き継ぐため、NewViewController 型のクラスにプロパティまたはインスタンス変数を追加する必要はありませんが、NewViewController のスコープを自分のとにかく後でイベントを処理するクラス/再利用など...

  3. NewViewController のインスタンスを作成するときは、このように nib からインスタンス化します (@property (strong, nonatomic) NewViewController* nvc; を宣言したと仮定していることに注意してください)。

-

nvc = [[NewViewController alloc] initWithNibNamed:@"nameOfNibGoesHereWithoutAppendingDotXib" bundle:[NSBundle mainBundle]];

newViewController が読み込まれると、Nib に配置したように動作することがわかります。

私はここで多くの仮定を立てました。必要に応じて質問を修正したり、リダイレクトしたりしてください。

于 2013-10-19T16:10:02.270 に答える