0

这可能已经被问过几次了,我如何在弹回时调用一个函数?NSlog 显示文本,但弹出后视图上不显示任何内容。

列表弹出到表格,但图像未显示

DrinkListViewController

DrinkTableViewController *drinkTable = [[DrinkTableViewController alloc]init];

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{
[[self navigationController] popToViewController:obj animated:NO];
                                 [drinkTable addImgViewAfterPopTime];
}

DrinkTableViewController

-(void)addImgViewAfterPopTime
{
    [self performSelector:@selector(addImgViewAfterPop) withObject:nil afterDelay:3];
    NSLog(@"casasasasa");
}
4

3 回答 3

2

您可以制作委托方法。并在推动 viewController 的同时使

controller.delegate = self;

然后在弹出时您可以调用该委托方法。

于 2012-06-05T09:05:59.787 回答
1

当您调用 DrinkTableViewController *drinkTable = [[DrinkTableViewController alloc]init]; 时,您正在创建 DrinkTableViewController 的新实例

因此,您可以这样做,而不是这样做:

DrinkListViewController.h

id m_RequestTarget;
SEL m_RequestSelector;

DrinkListViewController.m

-(void)setTarget:(id)inTarget Selector:(SEL)inSelector
{   
    m_RequestTarget = inTarget;
    m_RequestSelector = inSelector;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{
   if ([m_RequestTarget respondsToSelector:m_RequestSelector]) {
                    [m_RequestTarget performSelector:m_RequestSelector withObject:nil];
    }
   [[self navigationController] popToViewController:obj animated:NO];

}

在 DrinkTableViewController.m 中初始化 DrinkListViewController 时,调用 setTarget 方法如下:

[theDrinkListViewControllerObj setTarget:self andSelector:@selector(addImgViewAfterPopTime)];
于 2012-06-05T09:11:08.307 回答
1

使用 NSNotification 来代替这种复杂的情况,在弹回时发布通知。

于 2012-06-05T08:54:46.260 回答