Как сделать пользовательский делегат для пользовательского UIView цель c, кнопка ОК не работает - PullRequest
0 голосов
/ 02 июля 2018

Вот мой затронутый код:

#import "AddTeamView.h"
#import <AFNetworking.h>

@implementation AddTeamView

-(instancetype)initWithCoder:(NSCoder *)aDecoder
{

    self=[super initWithCoder:aDecoder];
    if (self)
    {
        [self customInit];
    }
    return self;
}
-(instancetype)initWithFrame:(CGRect)frame
{

    self=[super initWithFrame:frame];
    if (self)
    {
        [self customInit];

    }
    return self;
}
-(void)customInit
{
    [[NSBundle mainBundle]loadNibNamed:@"AddTeamView" owner:self options:nil];
    [self addSubview:self.contentView];
}
- (IBAction)okButton:(UIButton *)sender
{

    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    NSDictionary *params = @{@"team_name":self.enterNameTextField.text

                            };
    [manager POST:@"https://api.cartolafc.globo.com/times?q=team_name" parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
        }progress:nil success:^(NSURLSessionTask *task, id responseObject) {

//        [self stopHud];
        NSLog(@"JSON: %@", responseObject);
        NSDictionary *response = (NSDictionary *)responseObject;

    } failure:^(NSURLSessionTask *operation, NSError *error) {

        NSInteger statusCode = error.code;
        NSLog(@"%ld",(long)statusCode);

      //  [self stopHud];


    }];




}

Я создаю .Xib файл вроде:

enter image description here

Когда я нажимаю кнопку Ok, ответ не приходит и ничего не происходит. Теперь, как я могу объявить кастом Delegate для кастом UIView а зачем делегат тут нужен? Может кто-нибудь любезно объяснить, что я могу сделать, чтобы получить ответ API?

1 Ответ

0 голосов
/ 02 июля 2018

Откройте ваш AddTeamView.h и этот код.

@protocol AddTeamDelegate <NSObject>

  - (IBAction)okButton:(UIButton *)sender;

@end

@property id <AddTeamDelegate> delegate;

И синтезируйте это свойство в файле AddTeamView.m, как показано ниже.

@synthesize delegate;

Добавьте этот код в файл viewController.h, в который вы добавляете AddTeamView в качестве подпредставления.

@interface ViewController : UIViewController <AddTeamDelegate>

В вашем файле viewController.m добавьте этот код при добавлении AddTeamView как subView.

AddTeamView.delegate = self;

и добавьте этот метод для кнопки Ok в том же файле

- (IBAction)okButton:(UIButton *)sender
{
    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    NSDictionary *params = @{@"team_name":self.enterNameTextField.text

                        };
[manager POST:@"https://api.cartolafc.globo.com/times?q=team_name" parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
    }progress:nil success:^(NSURLSessionTask *task, id responseObject) {

//        [self stopHud];
    NSLog(@"JSON: %@", responseObject);
    NSDictionary *response = (NSDictionary *)responseObject;

} failure:^(NSURLSessionTask *operation, NSError *error) {

    NSInteger statusCode = error.code;
    NSLog(@"%ld",(long)statusCode);

  //  [self stopHud];
}];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...