【问题标题】:Can the initial setup of XIB elements done anywhere else except viewDidLoad除了 viewDidLoad 之外,XIB 元素的初始设置是否可以在其他任何地方完成
【发布时间】:2013-12-19 13:35:08
【问题描述】:

在我的应用程序中,我有一个 TabBarController(其中有 3 个 ViewControllerstabBarItems),它是从另一个 ViewController(称为 HomeViewController)呈现的。 HomeViewController 有三个按钮,按下时会在 tabBarController 中显示相应的控制器。

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

在它的viewDidLoad 方法中,我最初隐藏了表格,这样如果用户单击HomeViewController 上的第一个按钮,他就看不到空表格。如果用户单击HomeViewController 上的第一个按钮(以显示第一个视图控制器),这将按计划进行

问题是:如果用户首先从HomeViewController 转到第二个viewController,则调用它的viewDidLoad 方法(这不是问题)。但是,当用户从第二个ViewController转到第一个Viewcontroller时,调用了第一个ViewcontrollerviewDidLoad方法,我的表被隐藏了..!!需要实际显示。

我知道我的问题很难以这种方式理解,但谁能帮忙??

这是我第一个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 之后加载的..

【问题讨论】:

    标签: ios iphone uitabbarcontroller viewdidload


    【解决方案1】:

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

    【讨论】:

    • 比这稍微复杂一点。必须在第一个控制器中设置两个标志。一个确认控件已从第二个控制器传递,另一个确认是否已呈现视图之前..但我的工作完成了..感谢您的提示..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-20
    相关资源
    最近更新 更多