n.evermind n.evermind - 1 month ago 7
Objective-C Question

UIView: How to find out if a view is already exists?

I was wondering how to find out if a subview (in my case pageShadowView) has already been added to my view.

I've come up with this, but it doesn't really work:

if ([pageShadowView isKindOfClass:[self.view class]]) {
[self.view addSubview:pageShadowView];
}


Also, I'm still confused about the self.-thing. I know that this has to do with making clear that we are talking about the view of the current ViewController ... but do I really need it if there (1) are no other ViewControllers or (2) if it doesn't really matter because if I ever wanted to refer to another viewController, I'd make sure to call it?

I'm sorry if this is all very basic, but I'd be very grateful for your comments.

Answer

Here:

BOOL doesContain = [self.view.subviews containsObject:pageShadowView];

And yes, you need this self. There is no explicit ivar "view" on UIViewController. The self.view statement is actually a call on method [self view] which is a getter for UIViewController's view.