1

refreshData メソッドを実装する ViewController があります

この ViewController では、次のようにサブビューを追加します。

/* MainPageViewController.m
    //===============================================================================
    */

     #import "MainPageViewController.h"
     #import "SubViewController1.h"
     @implementation Drink4UMainPageViewController

    SubViewController1 *subViewController1;
    ......

     -(void)currentChatButtonMethod;
    {

        subViewController1 = [[SubViewController1 alloc]
                             initWithNibName:@"SubViewController1"
                             bundle:nil];


        UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:subViewController1];
      [self.view addSubview:navController.view];
        // viewController.

        CGRect rect = navController.view.frame;
        CGPoint origin = CGPointMake(320, -10);
        rect.origin = origin;
        navController.view.frame = rect;


        //----------------------------------------------------------------------
        // Use a transform to slide it on.
        //----------------------------------------------------------------------
        [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationDuration:0.5];
        navController.view.transform = CGAffineTransformMakeTranslation(-320, -10);
        [UIView commitAnimations];

}

     -(void) refreshData
     {
     // CODE

    } 

ここから、「MainPageViewController」で「refreshData」メソッドを呼び出すにはどうすればよいですか?

    /*
    // SubViewController1.m
    =========================================================================================
    */


     #import "SubViewController1.h"
     #import <UIKit/UIKit.h>
     #import "MainPageViewController.h"

     @interface SubViewController1 : UIViewController <UITableViewDelegate, UITableViewDataSource, UINavigationControllerDelegate, UIAlertViewDelegate>
    {



    From here how can i call "refreshData" method in "MainPageViewController " ?



    }
    @end;

Mainviewcontroller から UINavigationController にサブ ビューを追加しています。Subviewcontroller1 から Mainviewcontroller のメソッド (refreshData) を呼び出したいと思います。

どうすればこれを行うことができますか助けてください

4

1 に答える 1

0

子ビューには、その親への参照が必要です。これを行うには、子ビュー コントローラーでプロパティを作成し、それを作成するときに、作成したプロパティへの参照を親ビュー コントローラーに渡します。

 @interface SubViewController1 : UIViewController <UITableViewDelegate, UITableViewDataSource, UINavigationControllerDelegate, UIAlertViewDelegate>
{    }


//Add this section <--------------------------------------
@property (nonatomic, retain) Drink4UMainPageViewController* parent;

-(void)DoStuff
{
    [parent refreshData];
}
@end;

-(void)currentChatButtonMethod;
{

    subViewController1 = [[SubViewController1 alloc]
                         initWithNibName:@"SubViewController1"
                         bundle:nil];

    subViewController1.parent = self;                     // Add this line<--------------


    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:subViewController1];
    [self.view addSubview:navController.view];
于 2012-04-17T17:28:35.273 に答える