隐藏来自UIViewController的textview

时间:2014-07-18 10:14:19

标签: ios objective-c uiviewcontroller

我有A和B UIViewController。控制器有按钮和文本视图,然后单击此按钮,它将转到B控制器。然后我点击B控制器,我回到A控制器。但是当我从B控制器回来时,我需要隐藏来自A控制器的textview。

B控制器:

-(void)A{
    [self.navigationController popToRootViewController animated:YES];

}

5 个答案:

答案 0 :(得分:1)

您正在使用poptoviewcontroller方法,因此在返回上一个控制器后,数据仍然存在。因此,在从A控制器导航到B控制器之前隐藏textview,这样当导航视图弹出到主视图时,textview将被隐藏

答案 1 :(得分:1)

尝试使用这样的... 有两种解决方案

1

- (void)viewDidLoad
{
    [super viewDidLoad];
    textview.hideen = NO;
}

- (void)viewWillDisappear:(BOOL)animated
{
   [super viewWillDisappear:animated];
   textview.hidden = YES;
}

2。使用NSUserDefaults中的密钥获取状态。我的意思是检查它是否来自B控制器。

答案 2 :(得分:1)

有很多选择:

  1. 在导航到下一个视图之前隐藏文本视图。

  2. 在viewwilldisappear方法中隐藏textview。

  3. 使用NSUserDefaults的密钥并检查它是否来自B控制器。

  4. 在appdelegate中声明变量并在B控制器中更改其值检查控制器中的值会根据结果隐藏textview。

  5. 您可以通过声明视图控制器并将其设置为naviagation控制器导航到另一个页面,然后您可以设置该控制器的属性。

答案 3 :(得分:0)

->write code in controller A 

- (void)viewDidLoad {     [super viewDidLoad];

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(hideTextview) name:@“hidetextview” object:nil];

} - (void)hideTextview {

textview.hidden = YES;

}

->in controller B 
  • (无效)viewWillDisappear:(BOOL)动画{

[[NSNotificationCenter defaultCenter] postNotificationName:@" hidetextview" object:nil userInfo:nil];
}

答案 4 :(得分:0)

您可以做的最简单的事情是在导航到视图控制器B之前隐藏viewcontroller A中的文本视图,因此需要在

中添加代码
- (void)viewWillDisappear:(BOOL)animated
{
  [super viewWillDisappear:animated];
  textview.hidden = YES;
}

OR

- (void)navigateToBController{
   VCB *b = [[VCB alloc]init];
   [self.navigationController pushviewController:b];
   textview.hidden = YES;
}

如果您从A - >导航; B - > C然后在viewcontroller C中你导航到根视图控制器即A然后在这种情况下,我建议的是在NSUSerDefault中维护一个变量,它会告诉你它从哪个viewcontroller弹出,这样你就可以显示/隐藏你的textview。