可以在除viewDidLoad之外的任何其他地方完成XIB元素的初始设置

时间:2013-12-19 13:35:08

标签: ios iphone uitabbarcontroller viewdidload

在我的应用程序中,我有一个TabBarController(其ViewControllerstabBarItemsViewController)来自另一个HomeViewController(被叫HomeViewController)。 tabBarItem有三个按钮,按下后会显示tabBarController中的相应控制器。

第二个ViewDidLoad中的Controller处理一些信息并将该信息发送到第一个tabBarItem中的控制器,该tabBarItem更新其表并显示已处理的数据。但是,问题是第一个控制器的viewDidLoad方法。

在它的HomeViewController方法中,我最初隐藏了表格,因此如果用户点击HomeViewController上的第一个按钮,则表格对他来说是不可见的。如果用户点击viewController上的第一个按钮(以显示第一个视图控制器),则按计划进行操作

问题是:如果用户首先从HomeViewController转到第二个viewDidLoad,则会调用ViewController方法(这不是问题)。但是,当用户从第二个viewDidLoad转到第一个Viewcontroller时,会调用第一个Viewcontroller的{​​{1}}方法,并隐藏我的表格。!!需要实际显示。

我知道我的问题很难理解,但有人可以帮忙吗?

这是我的第一个ViewController的代码:

- (void)viewDidLoad
{
    [super viewDidLoad];

    NSLog(@"View Did Load of CCVC");

    //self.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"top_bar.png"]];

    [self.customercareSearchbar setBackgroundImage:[UIImage imageNamed:@"dark_grey_search_back.png"]];

    [self.view addSubview:self.customercareSearchbar];
    [self.view addSubview:self.customerCareTableView];

    self.customercareSearchbar.delegate = self;
    self.customerCareTableView.delegate = self;

    //[self.customerCareTableView setBackgroundColor:[UIColor lightGrayColor]];
    [self.customerCareTableView setAutoresizingMask:(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)];

     ////HERE LIES THE Main PROBLEM

    [self.customerCareTableView setHidden:YES];
    [self.customercareSearchbar becomeFirstResponder];
}

是否可以移动

[self.customerCareTableView setHidden:YES];
    [self.customercareSearchbar becomeFirstResponder];

在任何其他方法?我知道它在init中不起作用,因为在调用init后加载了视图。

1 个答案:

答案 0 :(得分:0)

您可以根据从第一个ViewController的ViewWillAppear中的第二个ViewController接收的值添加一些逻辑,以便将您的customerCareTableView隐藏属性设置为NO。