2012-01-06 11 views
1

私はまだiOSを開発するのがとても新しいです。実際には、スーパーノブがあれば、私は1つになります:p。現在私は、サブビューにアクセスするIBActionボタンの作成に取り組んでいます。私は2つのViewController、AddClientVCNewClientVCを持っていて、どちらも.nibファイルです。あなたは、私は透明な背景としてのUIViewを実装見ることができるようにサブビューとUIViewを終了しようとしています

- (IBAction)buttonPressed:(id)sender 
{ 
    UIView *transparentBG = [[UIView alloc] initWithFrame:CGRectMake(-5, -5, 1500, 2500)]; 
    transparentBG.backgroundColor = [UIColor blackColor]; 
    transparentBG.opaque = NO; 
    transparentBG.alpha = 0.5; 
    [self.view addSubview:transparentBG]; 
    transparentBG.center = transparentBG.center; 

    vc = [[NewClientVC alloc] initWithNibName:@"NewClientVC" bundle:nil]; 
    [self.view addSubview:vc.view]; 
    vc.view.center = self.view.center; 
} 

:だから、基本的に、私のAddClientVCの内側に、私は次のコードでIBActionボタンを実装します。基本的にAddClientVC - >透明な背景 - > NewClientVC。今、私は別のIBActionボタンを作成しているが、このようになり、アクセスサブビュー却下する機能としてNewClientVC内でこの時間:

​​

は、私が今抱えている問題は、私だけ削除しsaveDismissボタンにそれをクリックしたときであります以前AddClientVCで呼び出されたサブビューは、私がUIViewとして作成した透明な背景は削除されませんでした。だから問題は私のサブビューと透明な背景を同時に作成したUIViewを同時に削除するアクションを実装する方法です。

私は私が得ることができるすべての助けを必要と:)

答えて

0

私は手動でサブビューを追加して、画面の管理ではなく、あなたのルートのViewControllerの

- (void)presentModalViewController: (UIViewController *)modalViewController 
          animated: (BOOL)animated 

メソッドを使用しないことをお勧めします。 または、UINavigationControllerをインスタンス化し、プッシュおよびポップのメソッドを使用してビューをドリルダウン/アップします。 See apple reference here

+0

私はpresentModalViewまたはUIPopviewController ..しかし、明らかに誰かが代わりにサブビューを使用して主張して使用したい知っている。 –

+0

新しいビューが古いものと完全に重複している場合は、viewControllerを使用してスタック上にプッシュすることをお勧めします。サブビューを追加する方が良いと思う理由を教えてください。 –

+0

明らかに、はるかに速く、かつてサブビューと呼ばれていたものは、何も遅れずに即座に表示されます。 –

0

私は、私は完全にあなたが起こるしたいのかを理解しすぎてわからないんだけど、多分あなたは、このような何かを試みることができますか?

- (IBAction)saveDismiss:(id)sender 
{ 
    [vc removeFromSuperView]; 
    [self.view removeFromSuperview]; 
} 
+0

はibactionを押しますNewClient VCからサブビューを取得します。明らかに、私はNewClient VCのサブビューが呼び出される前に透過的なUIViewバックグラウンドを埋め込む必要があります。次に、サブビューが呼び出されたときに、save dismissがクリックされると、現在のビューを閉じてAddClientVCに戻ります。しかし、明らかに私は[self.view removeFromSuperview]を実装します。それはサブビューだけを削除しますが、UIView透明な背景はまだそこにあります。私はそれを試したが動作しません:( –

0

コードの実行速度を心配し、AppleのSDKに自信を持って滞在しないでください。 UIKitは、最高のユーザーエクスペリエンスに最適化されています。不適切なSDKを使用してコードを強化しようとするのは、私の意見では危険な戦略です。 ;) - Vincent Zgueb

申し訳ありませんが、私はあなたに同意しません。私は私のビューのサブビューを追加するジェスチャーを実装したいので私はここに達しました。これは私のアプリのナビゲーションになります。

[self.view addSubview:ctrl.view]; 

は速く

[self.navigationController presentModalViewController:ctrl animated:NO] 

よりビューを提示され、方法によって、私の場合は、トピックへのソリューションでした:そのあなたをクリックすると、ボタンで

[self.view sendSubviewToBack:ctrl.view]; 
関連する問題