我有两个观点说A& B.两者都是UIViewController类的子类.View A不是Table View,但它是一个支持滚动的视图,因为它超过了iphone尺寸320 * 460。视图B不是滚动视图。我在点击视图A中的某个按钮时调用视图B,
-(IBAction)bt:id(Sender)
{
B *mB=[[B alloc]initWithNib:@"B" bundle:nil];
[self.view addSubView:mB.view];
}
问题是,由于视图A较大,因此当B通过视图A加载时,甚至视图A在视图B中部分可见。请帮助我克服这个问题吗?
答案 0 :(得分:0)
在将视图B添加到主视图之前,从其超级视图中删除视图A.
在.h中的采取两个对象
ViewA * aObject; ViewB * bObject;
在视图中,DidLoad以这种方式创建视图A和视图B的两个对象
aObject = [[ViewA alloc] initWithNibName:@“ViewA”bundle:nil];
bObject = [[ViewB alloc] initWithNibName:@“ViewB”bundle:nil];
[self.view addSubView:aObject.view];
如果要添加视图B,请添加此代码
[aObject.view removeFromSuperView];
[self.view addSubView:bObject.view];
同样在IN Back Button操作中,您可以添加
之类的代码[bObject.view removeFromSuperView];
[self.view addSubView:aObject.view];
在您的应用程序中尝试使用此代码段代码,我希望它能为您提供帮助。它不会丢失你以前的calss值
答案 1 :(得分:0)
问题是您要将视图B添加到视图A子视图,而视图A位于滚动视图中,因此您需要在Interface Builder中创建单独的UIView Outlet和UIView smallViewB视图A显示视图B所需的任何大小。< / p>
然后将子视图添加到您在上方创建的View Outlet。 如果问题仍然存在,请告诉我。
@interface ViewController A:UIViewController
@property(nonautomic,retain)IBOutlet UIView *smallViewB;
@implementation ViewController A
@synthesize smallViewB; //Make connection smallViewB in Interface Builder.
-(IBAction)bt:id(Sender)
{
B *mB=[[B alloc]initWithNib:@"B" bundle:nil];
[self.smallViewB addSubView:mB.view];
}
答案 2 :(得分:0)
尝试在你的 - (IBAction)bt:(id)Sender
中添加ViewA.your_scroll_view.scrollEnabled=NO;
如果我理解的话,这可能是你想要做的。
答案 3 :(得分:0)
感谢您的建议,但我找到了解决问题的不同方法。
当在滚动视图A上添加另一个视图,即视图B时,我相应地重置了A的滚动视图尺寸,使其不可见。此外,当我按下视图B中的后退按钮时,我再次将视图A的滚动视图尺寸设置为其先前的值。此外,我使View A成为View B的委托,因为在按下B中的Back Button时,我需要调用一个在View A中定义的函数,它是View B协议的一部分。