The correct way for your subcontroller to ask the main controller to remove it. If you want to reduce the connection between the two controllers, create a delegate protocol for your subcontroller:
@class MySubcontroller;
@protocol MySubcontrollerDelegate
- (void)hideMySubcontroller:(MySubcontroller*)subcontroller;
@end
, , . , , .
delegate :
@interface MySubcontroller : UIViewController {
id <MySubcontrollerDelegate> delegate;
...
}
@property (assign) id <MySubcontrollerDelegate> delegate;
...
@end
removeFromSuperview hideMySubcontroller: , self .
, :
@interface MyMainController : UIViewController <MySubcontrollerDelegate>
...
@end
, subcontroller delegate self. hideMySubcontroller:, , , .
, , ; , - . , .
, , , ; , . ( , , .)