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;

そして、ポップしている間、uはそのデリゲートメソッドを呼び出すことができます。

于 2012-06-05T09:05:59.787 に答える
1

この複雑な状況の代わりにNSNotificationを使用して、ポップバック時に通知を投稿してください。

于 2012-06-05T08:54:46.260 に答える
1

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)];
于 2012-06-05T09:11:08.307 に答える