我在一个 xib 中有一个 CustomView,在两个不同的 xib 中有两个不同的视图。我想在一个CustomeView中一个接一个地显示这两个视图。我有一个 NSView 对象,它连接到 .xib 文件中的 CustomView
@property (retain) IBOutlet NSView *mySubview; @property (retain) NSViewController *viewController;
打开一个View的方法是:
-(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 中正确显示,但是当我尝试第二次打开第二个视图或相同的视图时,它会与之前打开的视图重叠。
我试过了
[_mySubview removeFromSuperview]
它正在完全删除“mySubview”,我的意思是当前加载的视图将被删除,但在执行后不允许显示任何视图'[_mySubview removeFromSuperview]'
。