1つのxibに1つのCustomViewがあり、2つの異なるxibに2つの異なるビューがあります。これらの2つのビューを1つのCustomeViewに次々に表示したいと思います。.xibファイルでCustomViewに接続されているNSViewのオブジェクトがあります
@property (retain) IBOutlet NSView *mySubview; @property (retain) NSViewController *viewController;
1つのビューを開く方法は次のとおりです。
-(IBAction)selectBookTicket:(id)sender
{
//setting status label to nil
_viewController=[[NSViewController alloc] initWithNibName:@"BookTicket" bundle:nil];
//loading bookTicket xib in custom view of NormalUserWindow
[_mySubview addSubview:[_viewController view]];
}
同じCustomViewで別のビューを開く方法は次のとおりです。
-(IBAction)selectTicketCancellation:(id)sender
{
_viewController=[[NSViewController alloc] initWithNibName:@"CancelTicket" bundle:nil];
//loading CancelTicket xib in custom view of NormalUserWindow
[_mySubview addSubview:[_viewController view]];
}
初めてビューを開くと、CustomViewで正しく表示されますが、2番目のビューまたは同じビューをもう一度開こうとすると、前に開いたビューと重なってしまいます。
私は試した
[_mySubview removeFromSuperview]
'mySubview'を完全に削除します。つまり、現在ロードされているビューはすべて削除されますが'[_mySubview removeFromSuperview]'
、実行後にビューを表示することはできません。