0
이전에 여러보기 컨트롤러를 닫는 것에 대한 질문을했고 내가 찾은 가능한 해결책과 함께 제공된 답변이 모두 원하는 효과를 얻지 못했습니다. 나는 나의 대표단을 설립하는 방식으로 내 문제를 무언가로 좁혔다. 코드는 아래에 있고 나는 정말 어떤 의견을 주셔서 감사합니다.여러보기 컨트롤러를 닫는 위임 문제
내 전체 프로젝트는 여기에서 다운로드 할 수 있습니다 https://www.yousendit.com/download/TEhWckhYQVNYSHpIRHNUQw
감사합니다.
//
// QuestionViewController.h
// learningTheRopes1
//
// Created by James Ulle on 7/18/12.
// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "Question.h"
#import "AnswerViewController.h"
@interface QuestionViewController : UIViewController <AnswerViewControllerDelegate>
@property (weak, nonatomic) IBOutlet UILabel *currentQuestionDisplay;
@property (weak, nonatomic) IBOutlet UITextField *userAnswerTextField;
@property (nonatomic, strong) Question *currentQuestion;
- (IBAction)dismissKeyboard:(id)sender;
- (void)dismissQVC;
@end
//
// QuestionViewController.m
// learningTheRopes1
//
// Created by James Ulle on 7/18/12.
// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
//
#import "QuestionViewController.h"
@interface QuestionViewController()
@end
@implementation QuestionViewController
@synthesize currentQuestionDisplay;
@synthesize userAnswerTextField;
@synthesize currentQuestion;
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
AnswerViewController *avc = [segue destinationViewController];
[avc setCurrentQuestion:currentQuestion];
[avc setUserAnswer:[userAnswerTextField text]];
}
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
[self.currentQuestionDisplay setText:[currentQuestion question]];
// Do any additional setup after loading the view.
}
- (void)viewDidUnload
{
[self setCurrentQuestionDisplay:nil];
[self setUserAnswerTextField:nil];
[super viewDidUnload];
// Release any retained subviews of the main view.
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
- (IBAction)dismissKeyboard:(id)sender {
[userAnswerTextField resignFirstResponder];
}
- (void)dismissQVC {
NSLog(@"Dismiss QVC");
[self.navigationController popViewControllerAnimated:NO];
}
@end
//
// AnswerViewController.h
// learningTheRopes1
//
// Created by James Ulle on 7/18/12.
// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "Question.h"
@protocol AnswerViewControllerDelegate <NSObject>
- (void)dismissQVC;
@end
#import "QuestionViewController.h"
@interface AnswerViewController : UIViewController
@property (weak, nonatomic) IBOutlet UILabel *displayCurrentAnswer;
@property (nonatomic, strong) Question *currentQuestion;
@property (nonatomic, strong) NSString *userAnswer;
@property (nonatomic, weak) id <AnswerViewControllerDelegate> delegate;
- (IBAction)dismissAnswerVC:(id)sender;
@end
//
// AnswerViewController.m
// learningTheRopes1
//
// Created by James Ulle on 7/18/12.
// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
//
#import "AnswerViewController.h"
@interface AnswerViewController()
@end
@implementation AnswerViewController
@synthesize displayCurrentAnswer;
@synthesize currentQuestion;
@synthesize userAnswer;
@synthesize delegate;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
if([userAnswer isEqualToString:currentQuestion.answer]) {
[self.displayCurrentAnswer setText:@"You are correct!"];
}
else {
[self.displayCurrentAnswer setText:@"You are wrong!"];
}
// Do any additional setup after loading the view.
}
- (void)viewDidUnload
{
[self setDisplayCurrentAnswer:nil];
[super viewDidUnload];
// Release any retained subviews of the main view.
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
- (IBAction)dismissAnswerVC:(id)sender {
[self dismissViewControllerAnimated:YES completion:^{
NSLog(@"Dismiss AVC");
[[self delegate] dismissQVC];
}];
}
@end
그리고 마지막으로 내 출력이 참에 완료 블록이라는 것을 보여 주지만, 다시 dimissQVC에 위임 호출이 발생하지 않는 (이것이다 :
2012-08-03 19:04:34.235
learningTheRopes1[4165:f803] Dismiss AVC
덕분에 당신은 당신을 감사합니다 감사합니다 나는 아이폰 OS에 새로운 오전 대표단은 나를 난처한 상황에 빠진했다 내가 wante 정확히처럼 작동합니다.. 지금까지. – JRulle