Iphone 如何在弹出时从mainview调用函数

Iphone 如何在弹出时从mainview调用函数,iphone,ios,xcode,popviewcontroller,Iphone,Ios,Xcode,Popviewcontroller,这可能已经被问了好几次了,当弹出返回时如何调用函数? NSlog显示文本,但弹出后视图上不会显示任何内容 列表弹出到表格,但图像未显示 饮水显示控制器 DrinkTableViewController *drinkTable = [[DrinkTableViewController alloc]init]; - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

这可能已经被问了好几次了,当弹出返回时如何调用函数? NSlog显示文本,但弹出后视图上不会显示任何内容

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

饮水显示控制器

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

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{
[[self navigationController] popToViewController:obj animated:NO];
                                 [drinkTable addImgViewAfterPopTime];
}
-(void)addImgViewAfterPopTime
{
    [self performSelector:@selector(addImgViewAfterPop) withObject:nil afterDelay:3];
    NSLog(@"casasasasa");
}
DrinkTableViewController

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

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{
[[self navigationController] popToViewController:obj animated:NO];
                                 [drinkTable addImgViewAfterPopTime];
}
-(void)addImgViewAfterPopTime
{
    [self performSelector:@selector(addImgViewAfterPop) withObject:nil afterDelay:3];
    NSLog(@"casasasasa");
}

使用NSNotification可以做到这一点,而不是在这种复杂的情况下,在弹出时发布通知

使用NSNotification来完成此操作,而不是在这种复杂的情况下,在弹出时发布通知

您可以创建委托方法。在按下viewController时,使

controller.delegate=self


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

您可以使委托方法。在按下viewController时,使

controller.delegate=self


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

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

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

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)];

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

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

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)];