2011-09-13 9 views
0

非常に単純なpushViewControllerをペン先から作成されたView Controllerで実行しようとしています。UIViewControllerをNibからプッシュするときにUIWindowが設定されない

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
ServiceDetailViewController *serviceDetail = [[ServiceDetailViewController alloc] initWithNibName:@"ServiceDetailViewController" bundle:nil]; 
serviceDetail.employee = _employee; 

[self.navigationController pushViewController:serviceDetail animated:YES]; 
previousSelectedRow = indexPath; 
} 

serviceDetailビューコントローラのウィンドウをそのviewDidLoad内に、またはその関数内の他の場所に返すと、nullになります。 pushViewControllerの直後にウィンドウを返すと問題ありません。

私のviewDidLoadは正常です。私はスーパーに電話しています。

これは私が見落としているもの、splitViewControllerセットアップの問題、またはxCode 4/ARCのバグのようです。

私はより多くのコードを提供する必要があるかもしれないが、私は誰かが考えを持っていることを望んでいると思います。

答えて

0

viewDidLoadビューは、ビューがメモリにロードされた直後、ビューがバッキングウィンドウを含むビュー階層に追加される前に呼び出されます。 viewDidAppearメソッドは、ウィンドウに追加された直後に呼び出されます。たぶん、ウィンドウ値を必要とするコードが、そのメソッドでうまくいくでしょう。

+0

私はPopoverを表示するために使用しているUIButtonのサブクラスを持っています。それは、 "presenterView" iVarを持っていて、それにポップオーバーを提示します。 viewDidLoadとviewDidAppearの両方でpresenterViewを設定しようとしましたが、UIWindowは常にnilです。これにより、次のエラーが発生します。「ポップオーバーは、ウィンドウを持たないビューからは表示できません。 – bjtitus

関連する問題