1

アプリケーションのメインUIViewを取得できるようにしたい。これまで、私は[[[self.view superview] superview] superview]を呼び出して、チェーンを上に(または、見方によっては下に)トラバースしていました。これに伴う問題は、私が行く必要のあるレベルアップの数を完全に確信できない可能性があるということです。次の方法はありますか?

  1. iPhoneアプリケーションの最高レベルのUIViewに直接移動しますか?

または、そうでない場合は

  1. 現在のスーパービューがアプリの最高レベルのUIViewであるかどうかを確認しますか?
4

2 に答える 2

5

そもそもそれがあなたが探しているものかどうかはわかりませんが、それは役に立ちます。

ポップアップなどのサブビューを追加するためにトップビューを検索しようとしている場合は、UIWindowを使用できます。これは、ある意味でトップレベルビューです。

UIWindow* window = [UIApplication sharedApplication].keyWindow;
if (!window) {
    window = [[UIApplication sharedApplication].windows objectAtIndex:0];
}
[window addSubview:yourView];
于 2010-11-23T14:06:15.903 に答える
0

これを上から引っ張るだけで、現在のビューのスーパービュープロパティがnullかどうかを確認するようなものですか?もしそうなら、それがルートビューであると推測するかもしれません。

于 2010-11-23T13:21:01.323 に答える