在初始化视图中按Tab键项时重新加载uiview

时间:2012-03-14 20:10:46

标签: iphone objective-c xcode uitabbarcontroller

我在标签栏控制器中有一个视图控制器。当我在“内部”初始化视图时,我希望能够再次按下标签栏项并重新绘制视图。

我的tabbarcontroller是在AppDelegate

中创建的
#AppDelegate.m
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
    NSString *titleV = viewController.title;
    if (titleV == @"Random") {
        DetailViewController *detailViewController = [[DetailViewController alloc] init];
        [detailViewController reloadView];
    }
}

#ViewController.m
-(void)reloadView{
    [self.view setNeedsDisplay];
    NSLog(@"view updated");
}
//code
- (void)viewDidLoad
{
    [super viewDidLoad];
    [self checkContent];
    NSLog(@"viewDidLoad");
}
//code
-(void)checkContent{
    if (theContent==NULL) {
        contentText.numberOfLines=0;
        contentText.text = randomContent;
        NSLog(@"%@", contentText.text);
    } else {
        contentText.text = theContent;
    }
}

从日志中我可以看到contentText.text虽然可见标签没有更新,但直到我移动到另一个视图然后再返回。我不确定为什么这不起作用。关于如何解决这个问题的任何想法都非常感谢。

如果您需要更多代码,我很乐意提供。

干杯, Dubbelsnurr

1 个答案:

答案 0 :(得分:0)

我不会将- tabBarController:didSelectViewController放在appDelegate中,而是将tabBarController子类化并符合UITabBarDelegate,并从中调用- tabBarController:didSelectViewController

这是一个实现类似概念的教程:

http://iosdevelopertips.com/user-interface/detect-taps-on-uitabbarcontroller-and-determining-class-type.html