Version 0.1. Conjugation kinda working from the testing screen
This commit is contained in:
parent
0b783c1173
commit
af0959ff7b
@ -15,10 +15,11 @@
|
||||
B506EC7315EBF67500566A27 /* EspagramAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = B506EC7215EBF67500566A27 /* EspagramAppDelegate.m */; };
|
||||
B506EC7615EBF67500566A27 /* MainStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B506EC7415EBF67500566A27 /* MainStoryboard.storyboard */; };
|
||||
B506EC7915EBF67500566A27 /* EspagramViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B506EC7815EBF67500566A27 /* EspagramViewController.m */; };
|
||||
B506EC8415EC005B00566A27 /* EspagramMainViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B506EC8315EC005B00566A27 /* EspagramMainViewController.m */; };
|
||||
B506ECA515EE898700566A27 /* SpanishConjugator.m in Sources */ = {isa = PBXBuildFile; fileRef = B506ECA415EE898700566A27 /* SpanishConjugator.m */; };
|
||||
B512F63B164BEC6000DA031E /* EspagramTestViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B512F63A164BEC6000DA031E /* EspagramTestViewController.m */; };
|
||||
B512F63E164BEC8E00DA031E /* EspagramTestView.m in Sources */ = {isa = PBXBuildFile; fileRef = B512F63D164BEC8E00DA031E /* EspagramTestView.m */; };
|
||||
B512F64A164C2A2700DA031E /* Tense.m in Sources */ = {isa = PBXBuildFile; fileRef = B512F649164C2A2700DA031E /* Tense.m */; };
|
||||
B512F658164D1A0C00DA031E /* EspagramConjugationTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B512F657164D1A0C00DA031E /* EspagramConjugationTableViewController.m */; };
|
||||
B512F670164D60DB00DA031E /* EspagramMainTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B512F66F164D60DB00DA031E /* EspagramMainTableViewController.m */; };
|
||||
B5EFD38C162CA69F00C6E2EB /* GrammarTestViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B5EFD38B162CA69F00C6E2EB /* GrammarTestViewController.m */; };
|
||||
B5EFD392162CB18000C6E2EB /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B5EFD391162CB18000C6E2EB /* Default-568h@2x.png */; };
|
||||
/* End PBXBuildFile section */
|
||||
@ -37,14 +38,16 @@
|
||||
B506EC7515EBF67500566A27 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = en; path = en.lproj/MainStoryboard.storyboard; sourceTree = "<group>"; };
|
||||
B506EC7715EBF67500566A27 /* EspagramViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EspagramViewController.h; sourceTree = "<group>"; };
|
||||
B506EC7815EBF67500566A27 /* EspagramViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = EspagramViewController.m; sourceTree = "<group>"; };
|
||||
B506EC8215EC005B00566A27 /* EspagramMainViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EspagramMainViewController.h; sourceTree = "<group>"; };
|
||||
B506EC8315EC005B00566A27 /* EspagramMainViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EspagramMainViewController.m; sourceTree = "<group>"; };
|
||||
B506ECA315EE898700566A27 /* SpanishConjugator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SpanishConjugator.h; sourceTree = "<group>"; };
|
||||
B506ECA415EE898700566A27 /* SpanishConjugator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SpanishConjugator.m; sourceTree = "<group>"; };
|
||||
B512F639164BEC6000DA031E /* EspagramTestViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EspagramTestViewController.h; sourceTree = "<group>"; };
|
||||
B512F63A164BEC6000DA031E /* EspagramTestViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EspagramTestViewController.m; sourceTree = "<group>"; };
|
||||
B512F63C164BEC8E00DA031E /* EspagramTestView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EspagramTestView.h; sourceTree = "<group>"; };
|
||||
B512F63D164BEC8E00DA031E /* EspagramTestView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EspagramTestView.m; sourceTree = "<group>"; };
|
||||
B512F648164C2A2700DA031E /* Tense.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Tense.h; sourceTree = "<group>"; };
|
||||
B512F649164C2A2700DA031E /* Tense.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Tense.m; sourceTree = "<group>"; };
|
||||
B512F656164D1A0C00DA031E /* EspagramConjugationTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EspagramConjugationTableViewController.h; sourceTree = "<group>"; };
|
||||
B512F657164D1A0C00DA031E /* EspagramConjugationTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EspagramConjugationTableViewController.m; sourceTree = "<group>"; };
|
||||
B512F66E164D60DB00DA031E /* EspagramMainTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EspagramMainTableViewController.h; sourceTree = "<group>"; };
|
||||
B512F66F164D60DB00DA031E /* EspagramMainTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EspagramMainTableViewController.m; sourceTree = "<group>"; };
|
||||
B58F57661635D27E00CED51B /* Conjugator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Conjugator.h; sourceTree = "<group>"; };
|
||||
B58F576D16387BE600CED51B /* NSMutableArray_Shuffling.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = NSMutableArray_Shuffling.h; path = Espagram/NSMutableArray_Shuffling.h; sourceTree = "<group>"; };
|
||||
B5EFD38A162CA69F00C6E2EB /* GrammarTestViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GrammarTestViewController.h; sourceTree = "<group>"; };
|
||||
@ -100,18 +103,20 @@
|
||||
children = (
|
||||
B506EC7115EBF67500566A27 /* EspagramAppDelegate.h */,
|
||||
B506EC7415EBF67500566A27 /* MainStoryboard.storyboard */,
|
||||
B512F63C164BEC8E00DA031E /* EspagramTestView.h */,
|
||||
B512F63D164BEC8E00DA031E /* EspagramTestView.m */,
|
||||
B512F66E164D60DB00DA031E /* EspagramMainTableViewController.h */,
|
||||
B512F66F164D60DB00DA031E /* EspagramMainTableViewController.m */,
|
||||
B512F656164D1A0C00DA031E /* EspagramConjugationTableViewController.h */,
|
||||
B512F657164D1A0C00DA031E /* EspagramConjugationTableViewController.m */,
|
||||
B512F639164BEC6000DA031E /* EspagramTestViewController.h */,
|
||||
B512F63A164BEC6000DA031E /* EspagramTestViewController.m */,
|
||||
B512F648164C2A2700DA031E /* Tense.h */,
|
||||
B512F649164C2A2700DA031E /* Tense.m */,
|
||||
B506EC7215EBF67500566A27 /* EspagramAppDelegate.m */,
|
||||
B5EFD38A162CA69F00C6E2EB /* GrammarTestViewController.h */,
|
||||
B5EFD38B162CA69F00C6E2EB /* GrammarTestViewController.m */,
|
||||
B506ECA315EE898700566A27 /* SpanishConjugator.h */,
|
||||
B506ECA415EE898700566A27 /* SpanishConjugator.m */,
|
||||
B58F57661635D27E00CED51B /* Conjugator.h */,
|
||||
B506EC8215EC005B00566A27 /* EspagramMainViewController.h */,
|
||||
B506EC8315EC005B00566A27 /* EspagramMainViewController.m */,
|
||||
B506EC7715EBF67500566A27 /* EspagramViewController.h */,
|
||||
B506EC7815EBF67500566A27 /* EspagramViewController.m */,
|
||||
B506EC6915EBF67500566A27 /* Supporting Files */,
|
||||
@ -198,11 +203,12 @@
|
||||
B506EC6F15EBF67500566A27 /* main.m in Sources */,
|
||||
B506EC7315EBF67500566A27 /* EspagramAppDelegate.m in Sources */,
|
||||
B506EC7915EBF67500566A27 /* EspagramViewController.m in Sources */,
|
||||
B506EC8415EC005B00566A27 /* EspagramMainViewController.m in Sources */,
|
||||
B506ECA515EE898700566A27 /* SpanishConjugator.m in Sources */,
|
||||
B5EFD38C162CA69F00C6E2EB /* GrammarTestViewController.m in Sources */,
|
||||
B512F63B164BEC6000DA031E /* EspagramTestViewController.m in Sources */,
|
||||
B512F63E164BEC8E00DA031E /* EspagramTestView.m in Sources */,
|
||||
B512F64A164C2A2700DA031E /* Tense.m in Sources */,
|
||||
B512F658164D1A0C00DA031E /* EspagramConjugationTableViewController.m in Sources */,
|
||||
B512F670164D60DB00DA031E /* EspagramMainTableViewController.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
||||
Binary file not shown.
13
Espagram/ConjugatedVerbTableView.h
Normal file
13
Espagram/ConjugatedVerbTableView.h
Normal file
@ -0,0 +1,13 @@
|
||||
//
|
||||
// ConjugatedVerbTableView.h
|
||||
// Espagram
|
||||
//
|
||||
// Created by Abel Fokkinga on 11/8/12.
|
||||
// Copyright (c) 2012 Abel Fokkinga. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface ConjugatedVerbTableView : UITableView
|
||||
|
||||
@end
|
||||
31
Espagram/ConjugatedVerbTableView.m
Normal file
31
Espagram/ConjugatedVerbTableView.m
Normal file
@ -0,0 +1,31 @@
|
||||
//
|
||||
// ConjugatedVerbTableView.m
|
||||
// Espagram
|
||||
//
|
||||
// Created by Abel Fokkinga on 11/8/12.
|
||||
// Copyright (c) 2012 Abel Fokkinga. All rights reserved.
|
||||
//
|
||||
|
||||
#import "ConjugatedVerbTableView.h"
|
||||
|
||||
@implementation ConjugatedVerbTableView
|
||||
|
||||
- (id)initWithFrame:(CGRect)frame
|
||||
{
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
// Initialization code
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
/*
|
||||
// Only override drawRect: if you perform custom drawing.
|
||||
// An empty implementation adversely affects performance during animation.
|
||||
- (void)drawRect:(CGRect)rect
|
||||
{
|
||||
// Drawing code
|
||||
}
|
||||
*/
|
||||
|
||||
@end
|
||||
@ -7,9 +7,16 @@
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "Tense.h"
|
||||
|
||||
@protocol Conjugator
|
||||
|
||||
- (NSString *) conjugateVerb:(NSString *) verb inPerson:(NSString *) person andTense:(NSString *) tense;
|
||||
|
||||
- (NSDictionary *) persons;
|
||||
- (NSArray *) personsKeys;
|
||||
|
||||
- (NSString *) conjugateVerb:(NSString *) verb inPerson:(NSString *) person andTense:(Tense *) tense;
|
||||
|
||||
- (NSString *) description;
|
||||
|
||||
@end
|
||||
|
||||
30
Espagram/EspagramConjugationTableViewController.h
Normal file
30
Espagram/EspagramConjugationTableViewController.h
Normal file
@ -0,0 +1,30 @@
|
||||
//
|
||||
// EspagramConjugationTableViewController.h
|
||||
// Espagram
|
||||
//
|
||||
// Created by Abel Fokkinga on 11/9/12.
|
||||
// Copyright (c) 2012 Abel Fokkinga. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "Conjugator.h"
|
||||
|
||||
@class EspagramConjugationTableViewController;
|
||||
|
||||
@protocol EspagramConjugationTableView
|
||||
|
||||
@property (strong, nonatomic) id<Conjugator> conjugator;
|
||||
@property (strong, nonatomic) Tense *tense;
|
||||
@property (strong, nonatomic) NSString* verb;
|
||||
|
||||
@end
|
||||
|
||||
@interface EspagramConjugationTableViewController : UITableViewController
|
||||
|
||||
@property (weak, nonatomic) IBOutlet UITextField *verbInput;
|
||||
|
||||
@property (nonatomic, strong) id <EspagramConjugationTableView> dataSource;
|
||||
|
||||
- (void) reloadData;
|
||||
|
||||
@end
|
||||
118
Espagram/EspagramConjugationTableViewController.m
Normal file
118
Espagram/EspagramConjugationTableViewController.m
Normal file
@ -0,0 +1,118 @@
|
||||
//
|
||||
// EspagramConjugationTableViewController.m
|
||||
// Espagram
|
||||
//
|
||||
// Created by Abel Fokkinga on 11/9/12.
|
||||
// Copyright (c) 2012 Abel Fokkinga. All rights reserved.
|
||||
//
|
||||
|
||||
#import "EspagramConjugationTableViewController.h"
|
||||
#import "Conjugator.h"
|
||||
|
||||
@interface EspagramConjugationTableViewController ()
|
||||
@end
|
||||
|
||||
@implementation EspagramConjugationTableViewController
|
||||
|
||||
@synthesize dataSource = _dataSource;
|
||||
|
||||
- (void) dataSource:(id <EspagramConjugationTableView>) dataSource {
|
||||
_dataSource = dataSource;
|
||||
[self reloadData];
|
||||
}
|
||||
|
||||
- (IBAction)verbEntered:(id)sender {
|
||||
[self.view resignFirstResponder];
|
||||
}
|
||||
|
||||
- (id)initWithStyle:(UITableViewStyle)style
|
||||
{
|
||||
self = [super initWithStyle:style];
|
||||
if (self) {
|
||||
// Custom initialization
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void) reloadData {
|
||||
if (_dataSource) {
|
||||
NSLog(@"language %@", [self.dataSource.conjugator description]);
|
||||
NSLog(@"persons %d", self.dataSource.conjugator.persons.count);
|
||||
[self.tableView reloadData];
|
||||
} else NSLog(@"Datasource is nil");
|
||||
}
|
||||
|
||||
|
||||
- (void)didReceiveMemoryWarning
|
||||
{
|
||||
[super didReceiveMemoryWarning];
|
||||
// Dispose of any resources that can be recreated.
|
||||
}
|
||||
|
||||
#pragma mark - Table view data source
|
||||
|
||||
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
|
||||
{
|
||||
// Return the number of rows in the section.
|
||||
return [[[self.dataSource conjugator] persons] count];
|
||||
}
|
||||
|
||||
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
|
||||
{
|
||||
NSString *sectionName;
|
||||
switch (section)
|
||||
{
|
||||
case 0:
|
||||
sectionName = self.dataSource.verb;
|
||||
break;
|
||||
default:
|
||||
sectionName = @"";
|
||||
break;
|
||||
}
|
||||
return sectionName;
|
||||
}
|
||||
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
|
||||
{
|
||||
static NSString *CellIdentifier = @"ConjugatedVerbPerson";
|
||||
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
|
||||
|
||||
if (cell == nil) {
|
||||
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
|
||||
}
|
||||
|
||||
|
||||
NSString * person = [[self.dataSource.conjugator personsKeys] objectAtIndex:indexPath.row];
|
||||
cell.textLabel.text = [self.dataSource.conjugator.persons objectForKey:person];
|
||||
cell.detailTextLabel.text = [self.dataSource.conjugator conjugateVerb:self.dataSource.verb inPerson:person andTense:self.dataSource.tense];
|
||||
|
||||
return cell;
|
||||
}
|
||||
|
||||
- (void)viewDidLoad
|
||||
{
|
||||
[self.tableView reloadData];
|
||||
}
|
||||
|
||||
|
||||
|
||||
#pragma mark - Table view delegate
|
||||
|
||||
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
|
||||
{
|
||||
// Navigation logic may go here. Create and push another view controller.
|
||||
/*
|
||||
<#DetailViewController#> *detailViewController = [[<#DetailViewController#> alloc] initWithNibName:@"<#Nib name#>" bundle:nil];
|
||||
// ...
|
||||
// Pass the selected object to the new view controller.
|
||||
[self.navigationController pushViewController:detailViewController animated:YES];
|
||||
*/
|
||||
}
|
||||
|
||||
@end
|
||||
13
Espagram/EspagramMainTableViewController.h
Normal file
13
Espagram/EspagramMainTableViewController.h
Normal file
@ -0,0 +1,13 @@
|
||||
//
|
||||
// EspagramMainTableViewController.h
|
||||
// Espagram
|
||||
//
|
||||
// Created by Abel Fokkinga on 11/9/12.
|
||||
// Copyright (c) 2012 Abel Fokkinga. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface EspagramMainTableViewController : UITableViewController
|
||||
|
||||
@end
|
||||
158
Espagram/EspagramMainTableViewController.m
Normal file
158
Espagram/EspagramMainTableViewController.m
Normal file
@ -0,0 +1,158 @@
|
||||
//
|
||||
// EspagramMainTableViewController.m
|
||||
// Espagram
|
||||
//
|
||||
// Created by Abel Fokkinga on 11/9/12.
|
||||
// Copyright (c) 2012 Abel Fokkinga. All rights reserved.
|
||||
//
|
||||
|
||||
#import "EspagramMainTableViewController.h"
|
||||
#import "SpanishConjugator.h"
|
||||
#import "EspagramTestViewController.h"
|
||||
|
||||
@interface EspagramMainTableViewController ()
|
||||
@property (nonatomic, strong) NSString *language, *displayTitle;
|
||||
@property (nonatomic, strong) Tense * tense;
|
||||
@end
|
||||
|
||||
@implementation EspagramMainTableViewController
|
||||
|
||||
@synthesize language = _language;
|
||||
@synthesize tense = _tense;
|
||||
@synthesize displayTitle = _displayTitle;
|
||||
|
||||
- (id)initWithStyle:(UITableViewStyle)style
|
||||
{
|
||||
self = [super initWithStyle:style];
|
||||
if (self) {
|
||||
// Custom initialization
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)viewDidLoad
|
||||
{
|
||||
[super viewDidLoad];
|
||||
|
||||
// Uncomment the following line to preserve selection between presentations.
|
||||
// self.clearsSelectionOnViewWillAppear = NO;
|
||||
|
||||
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
|
||||
// self.navigationItem.rightBarButtonItem = self.editButtonItem;
|
||||
}
|
||||
|
||||
- (void)didReceiveMemoryWarning
|
||||
{
|
||||
[super didReceiveMemoryWarning];
|
||||
// Dispose of any resources that can be recreated.
|
||||
}
|
||||
|
||||
# pragma mark - Espagram setters and getters
|
||||
|
||||
- (id <Conjugator>) getLanguage {
|
||||
if ( [@"Spanish" isEqualToString:_language] ) {
|
||||
return [[SpanishConjugator alloc] init];
|
||||
} else return nil;
|
||||
}
|
||||
|
||||
- (Tense *) tense {
|
||||
if ( _tense == nil ) _tense =[[Tense alloc] init];
|
||||
return _tense;
|
||||
}
|
||||
|
||||
- (void) testVerbsWithLanguage:(NSString *)language andTense:(NSString *)tense;
|
||||
{
|
||||
self.language = language;
|
||||
self.tense = [[Tense alloc] init];
|
||||
self.tense.tense = tense;
|
||||
self.displayTitle = [self.tense getTenseInLanguage:@"Spanish"];
|
||||
[self performSegueWithIdentifier:@"Testing" sender:self];
|
||||
}
|
||||
|
||||
|
||||
|
||||
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
|
||||
|
||||
if ( [segue.identifier isEqualToString:@"Testing"]) {
|
||||
EspagramTestViewController * dest = segue.destinationViewController;
|
||||
dest.title = self.displayTitle;
|
||||
dest.conjugator= [self getLanguage];
|
||||
dest.tense =self.tense;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Table view data source
|
||||
|
||||
|
||||
/*
|
||||
// Override to support conditional editing of the table view.
|
||||
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
|
||||
{
|
||||
// Return NO if you do not want the specified item to be editable.
|
||||
return YES;
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
// Override to support editing the table view.
|
||||
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
|
||||
{
|
||||
if (editingStyle == UITableViewCellEditingStyleDelete) {
|
||||
// Delete the row from the data source
|
||||
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
|
||||
}
|
||||
else if (editingStyle == UITableViewCellEditingStyleInsert) {
|
||||
// Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
// Override to support rearranging the table view.
|
||||
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath
|
||||
{
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
// Override to support conditional rearranging of the table view.
|
||||
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath
|
||||
{
|
||||
// Return NO if you do not want the item to be re-orderable.
|
||||
return YES;
|
||||
}
|
||||
*/
|
||||
|
||||
#pragma mark - Table view delegate
|
||||
|
||||
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
|
||||
{
|
||||
NSString * selectedTense = [tableView cellForRowAtIndexPath:indexPath].textLabel.text;
|
||||
NSLog(@"Selected tense: %@", selectedTense);
|
||||
|
||||
if ( [selectedTense isEqualToString:@"Presente de indicativo"] ) {
|
||||
[self testVerbsWithLanguage: @"Spanish" andTense:@"SIMPLE_PRESENT"];
|
||||
} else if ( [selectedTense isEqualToString:@"Indefinido"] ) {
|
||||
[self testVerbsWithLanguage: @"Spanish" andTense:@"SIMPLE_PAST"];
|
||||
} else if ( [selectedTense isEqualToString:@"Imperfecto"] ) {
|
||||
[self testVerbsWithLanguage: @"Spanish" andTense:@"IMPERFECT"];
|
||||
} else if ( [selectedTense isEqualToString:@"Futuro"] ) {
|
||||
[self testVerbsWithLanguage: @"Spanish" andTense:@"FUTURE"];
|
||||
} else if ( [selectedTense isEqualToString:@"Pretérito Perfecto"] ) {
|
||||
[self testVerbsWithLanguage: @"Spanish" andTense:@"PRESENT_PERFECT"];
|
||||
} else if ( [selectedTense isEqualToString:@"Pluscuamperfecto"] ) {
|
||||
[self testVerbsWithLanguage: @"Spanish" andTense:@"PAST_PERFECT"];
|
||||
} else if ( [selectedTense isEqualToString:@"Futuro Perfecto"] ) {
|
||||
[self testVerbsWithLanguage: @"Spanish" andTense:@"FUTURE_PERFECT"];
|
||||
} else if ( [selectedTense isEqualToString:@"Condicional"] ) {
|
||||
[self testVerbsWithLanguage: @"Spanish" andTense:@"CONDITIONAL"];
|
||||
} else if ( [selectedTense isEqualToString:@"Condicional Perfect"] ) {
|
||||
[self testVerbsWithLanguage: @"Spanish" andTense:@"CONDITIONAL_PERFECT"];
|
||||
} else if ( [selectedTense isEqualToString:@"Gerundio"] ) {
|
||||
[self testVerbsWithLanguage: @"Spanish" andTense:@"GERUND"];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@end
|
||||
@ -1,15 +0,0 @@
|
||||
//
|
||||
// EspagramMainViewController.h
|
||||
// Espagram
|
||||
//
|
||||
// Created by Abel Fokkinga on 8/27/12.
|
||||
// Copyright (c) 2012 Abel Fokkinga. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface EspagramMainViewController : UIViewController
|
||||
|
||||
- (IBAction)testTense:(UIButton *)sender;
|
||||
|
||||
@end
|
||||
@ -1,83 +0,0 @@
|
||||
//
|
||||
// EspagramMainViewController.m
|
||||
// Espagram
|
||||
//
|
||||
// Created by Abel Fokkinga on 8/27/12.
|
||||
// Copyright (c) 2012 Abel Fokkinga. All rights reserved.
|
||||
//
|
||||
|
||||
#import "EspagramMainViewController.h"
|
||||
#import "GrammarTestViewController.h"
|
||||
#import "SpanishConjugator.h"
|
||||
|
||||
@interface EspagramMainViewController ()
|
||||
@property (nonatomic, strong) NSString *language, *tense, *displayTitle;
|
||||
@end
|
||||
|
||||
@implementation EspagramMainViewController
|
||||
|
||||
@synthesize language = _language;
|
||||
@synthesize tense = _tense;
|
||||
@synthesize displayTitle = _displayTitle;
|
||||
|
||||
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
|
||||
{
|
||||
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
|
||||
if (self) {
|
||||
// Custom initialization
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id <Conjugator>) getLanguage {
|
||||
if ( [@"Spanish" isEqualToString:_language] ) {
|
||||
return [[SpanishConjugator alloc] init];
|
||||
} else return nil;
|
||||
}
|
||||
|
||||
|
||||
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (void) testVerbsWithLanguage:(NSString *)language andTense:(NSString *)tense andTitle:(NSString *) title;
|
||||
{
|
||||
self.language = language;
|
||||
self.tense = tense;
|
||||
self.displayTitle = title;
|
||||
[self performSegueWithIdentifier:@"Testing" sender:self];
|
||||
}
|
||||
|
||||
- (IBAction)testTense:(UIButton *)sender
|
||||
{
|
||||
|
||||
if ( [sender.titleLabel.text isEqualToString:@"Presente"] ) {
|
||||
[self testVerbsWithLanguage: @"Spanish" andTense:@"SIMPLE_PRESENT" andTitle:sender.titleLabel.text];
|
||||
} else if ( [sender.titleLabel.text isEqualToString:@"Pretérito"] ) {
|
||||
[self testVerbsWithLanguage: @"Spanish" andTense:@"SIMPLE_PAST" andTitle:sender.titleLabel.text];
|
||||
} else if ( [sender.titleLabel.text isEqualToString:@"Imperfecto"] ) {
|
||||
[self testVerbsWithLanguage: @"Spanish" andTense:@"IMPERFECT" andTitle:sender.titleLabel.text];
|
||||
} else if ( [sender.titleLabel.text isEqualToString:@"Futuro"] ) {
|
||||
[self testVerbsWithLanguage: @"Spanish" andTense:@"FUTURE" andTitle:sender.titleLabel.text];
|
||||
} else if ( [sender.titleLabel.text isEqualToString:@"Perfecto"] ) {
|
||||
[self testVerbsWithLanguage: @"Spanish" andTense:@"PRESENT_PERFECT" andTitle:sender.titleLabel.text];
|
||||
} else if ( [sender.titleLabel.text isEqualToString:@"Pluscuamperfecto"] ) {
|
||||
[self testVerbsWithLanguage: @"Spanish" andTense:@"PAST_PERFECT" andTitle:sender.titleLabel.text];
|
||||
} else if ( [sender.titleLabel.text isEqualToString:@"Futuro Perfecto"] ) {
|
||||
[self testVerbsWithLanguage: @"Spanish" andTense:@"FUTURE_PERFECT" andTitle:sender.titleLabel.text];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
|
||||
|
||||
if ( [segue.identifier isEqualToString:@"Testing"]) {
|
||||
[segue.destinationViewController setTitle:self.displayTitle];
|
||||
[segue.destinationViewController setConjugator:[self getLanguage]];
|
||||
[segue.destinationViewController setTense:self.tense];
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
@ -8,10 +8,10 @@
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "Conjugator.h"
|
||||
#import "EspagramConjugationTableViewController.h"
|
||||
|
||||
@interface EspagramTestViewController : UIViewController
|
||||
@interface EspagramTestViewController : UIViewController <EspagramConjugationTableView>
|
||||
|
||||
@property (nonatomic, strong) id <Conjugator> conjugator;
|
||||
@property (nonatomic, strong) NSString * tense;
|
||||
@property (weak, nonatomic) IBOutlet UITextField *verbInput;
|
||||
|
||||
@end
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
//
|
||||
|
||||
#import "EspagramTestViewController.h"
|
||||
#import "GrammarTestViewController.h"
|
||||
|
||||
@interface EspagramTestViewController ()
|
||||
|
||||
@ -16,6 +15,18 @@
|
||||
@implementation EspagramTestViewController
|
||||
|
||||
@synthesize conjugator = _conjugator;
|
||||
@synthesize tense = _tense;
|
||||
@synthesize verb = _verb;
|
||||
@synthesize verbInput;
|
||||
|
||||
- (NSString *) verb {
|
||||
if ( self.verbInput.text)
|
||||
_verb = self.verbInput.text;
|
||||
return _verb;
|
||||
}
|
||||
- (IBAction)EditingDidEnd:(UITextField *)sender {
|
||||
[self resignFirstResponder];
|
||||
}
|
||||
|
||||
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
|
||||
{
|
||||
@ -42,8 +53,8 @@
|
||||
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
|
||||
|
||||
if ( [segue.identifier isEqualToString:@"Conjugate"]) {
|
||||
[segue.destinationViewController setConjugator:self.conjugator];
|
||||
[segue.destinationViewController setTense:self.tense];
|
||||
[segue.destinationViewController setDataSource:self];
|
||||
[segue.destinationViewController setTitle:[self.tense getTenseInLanguage:[self.conjugator description]]];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -8,16 +8,14 @@
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "Conjugator.h"
|
||||
#import "EspagramConjugationTableViewController.h"
|
||||
|
||||
@class GrammarTestViewController;
|
||||
|
||||
@interface GrammarTestViewController : UIViewController
|
||||
@interface GrammarTestViewController : UIViewController <EspagramConjugationTableView>
|
||||
|
||||
@property (weak, nonatomic) IBOutlet UITextField *verbInput;
|
||||
@property (weak, nonatomic) UITextField *verbInput;
|
||||
|
||||
@property (weak, nonatomic) IBOutlet id<Conjugator> conjugator;
|
||||
@property (weak, nonatomic) IBOutlet NSString *tense;
|
||||
|
||||
@property (weak, nonatomic) IBOutlet UILabel *tenseLabel;
|
||||
@property (weak, nonatomic) IBOutlet UIView *conjugatedVerbTable;
|
||||
|
||||
@end
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
//
|
||||
|
||||
#import "GrammarTestViewController.h"
|
||||
#import "Conjugator.h"
|
||||
|
||||
|
||||
@implementation GrammarTestViewController
|
||||
@ -15,6 +14,8 @@
|
||||
@synthesize conjugator = _conjugator;
|
||||
@synthesize verbInput = _verbInput;
|
||||
@synthesize tense = _tense;
|
||||
@synthesize verb = _verb;
|
||||
@synthesize conjugatedVerbTable = _conjugatedVerbTable;
|
||||
|
||||
|
||||
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
|
||||
@ -26,28 +27,33 @@
|
||||
return self;
|
||||
}
|
||||
|
||||
- (IBAction)verbEntered:(id *)sender {
|
||||
[self resignFirstResponder];
|
||||
- (IBAction)verbEntered:(id)sender {
|
||||
self.verb = self.verbInput.text;
|
||||
[self.view resignFirstResponder];
|
||||
}
|
||||
|
||||
- (void) setTense:(NSString *)tense {
|
||||
NSLog(@"New tense: %@",tense);
|
||||
if ( ![tense isEqualToString:_tense] ) {
|
||||
NSLog(@"Setting tense: %@",tense);
|
||||
_tense = tense;
|
||||
self.tenseLabel.text = tense;
|
||||
}
|
||||
|
||||
- (void) verb:(NSString *) verb {
|
||||
_verb = verb;
|
||||
if ( ! [_verb isEqualToString:self.verbInput.text])
|
||||
self.verbInput.text = _verb;
|
||||
}
|
||||
|
||||
- (IBAction)conjugateButtonPressed {
|
||||
// self.conjugatedVerbDisplay.text = [self.conjugator conjugateVerb:self.verbInput.text inPerson:[self getSelectedPerson] andTense:[self getSelectedTense] ];
|
||||
- (void) setup{
|
||||
NSLog([self.conjugator description]);
|
||||
NSLog(@"Persons %d", [[[self conjugator] persons] count]);
|
||||
}
|
||||
|
||||
- (void) awakeFromNib
|
||||
{
|
||||
[self setup];
|
||||
}
|
||||
|
||||
- (void)viewDidLoad
|
||||
{
|
||||
[super viewDidLoad];
|
||||
// Do any additional setup after loading the view.
|
||||
|
||||
[self setup];
|
||||
}
|
||||
|
||||
- (void)didReceiveMemoryWarning
|
||||
|
||||
@ -12,4 +12,5 @@
|
||||
@interface SpanishConjugator : NSObject <Conjugator>
|
||||
|
||||
|
||||
|
||||
@end
|
||||
|
||||
@ -14,6 +14,7 @@
|
||||
*simplePresentOtoUEstemChangersArray,
|
||||
*simplePresentEtoIstemChangersArray;
|
||||
|
||||
@property (nonatomic,strong) NSDictionary *persons;
|
||||
|
||||
@end
|
||||
|
||||
@ -22,6 +23,26 @@
|
||||
@synthesize simplePresentEtoIEstemChangersArray = _simplePresentEtoIEstemChangersArray;
|
||||
@synthesize simplePresentOtoUEstemChangersArray = _simplePresentOtoUEstemChangersArray;
|
||||
@synthesize simplePresentEtoIstemChangersArray = _simplePresentEtoIstemChangersArray;
|
||||
@synthesize persons = _persons;
|
||||
|
||||
|
||||
- (NSString *) description
|
||||
{
|
||||
return @"Spanish";
|
||||
}
|
||||
|
||||
|
||||
- (NSArray *) personsKeys{
|
||||
return [[NSArray alloc] initWithObjects:@"FIRST_PERSON_SINGULAR",@"SECOND_PERSON_SINGULAR",@"THIRD_PERSON_SINGULAR", @"FIRST_PERSON_PLURAL",@"SECOND_PERSON_PLURAL",@"THIRD_PERSON_PLURAL", nil];
|
||||
}
|
||||
|
||||
- (NSDictionary *) persons {
|
||||
if (_persons == nil) {
|
||||
_persons = [[NSDictionary alloc] initWithObjects:[[NSArray alloc]
|
||||
initWithObjects:@"yo",@"tú",@"él",@"nosotros", @"vosotros", @"ellos", nil] forKeys:[[NSArray alloc] initWithArray:self.personsKeys]];
|
||||
}
|
||||
return [_persons copy];
|
||||
}
|
||||
|
||||
- (NSArray *) simplePresentEtoIEstemChangersArray{
|
||||
if (_simplePresentEtoIEstemChangersArray == nil)
|
||||
@ -196,8 +217,6 @@
|
||||
NSString * verbStem = [self getSimplePresentStemVerb:verb inPerson:person];
|
||||
NSString * verbExit = [self getExit:verb];
|
||||
|
||||
// very irregular
|
||||
if ( [verb isEqualToString:@"haber"] ) return @"hay";
|
||||
|
||||
// other types of first person changes
|
||||
if ( [person isEqualToString:@"FIRST_PERSON_SINGULAR"]) {
|
||||
@ -212,6 +231,7 @@
|
||||
if ( [verb isEqualToString:@"ser"] ) return @"soy";
|
||||
if ( [verb isEqualToString:@"ir"] ) return @"voy";
|
||||
if ( [verb isEqualToString:@"oler"] ) return @"huelo";
|
||||
if ( [verb isEqualToString:@"haber"] ) return @"he";
|
||||
|
||||
return [verbStem stringByAppendingString:@"o"];
|
||||
}
|
||||
@ -220,6 +240,7 @@
|
||||
if ( [verb isEqualToString:@"ser"] ) return @"eres";
|
||||
if ( [verb isEqualToString:@"ir"] ) return @"vas";
|
||||
if ( [verb isEqualToString:@"oler"] ) return @"hueles";
|
||||
if ( [verb isEqualToString:@"haber"] ) return @"has";
|
||||
|
||||
if ( [@"ar" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"as"];
|
||||
else return [verbStem stringByAppendingString:@"es"];
|
||||
@ -229,6 +250,7 @@
|
||||
if ( [verb isEqualToString:@"ser"] ) return @"es";
|
||||
if ( [verb isEqualToString:@"ir"] ) return @"va";
|
||||
if ( [verb isEqualToString:@"oler"] ) return @"huele";
|
||||
if ( [verb isEqualToString:@"haber"] ) return @"ha";
|
||||
|
||||
if ( [@"ar" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"a"];
|
||||
else return [verbStem stringByAppendingString:@"e"];
|
||||
@ -237,6 +259,7 @@
|
||||
if ( [verb isEqualToString:@"estar"] ) return @"estamos";
|
||||
if ( [verb isEqualToString:@"ser"] ) return @"somos";
|
||||
if ( [verb isEqualToString:@"ir"] ) return @"vamos";
|
||||
if ( [verb isEqualToString:@"haber"] ) return @"hemos";
|
||||
|
||||
if ( [@"ar" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"amos"];
|
||||
if ( [@"er" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"emos"];
|
||||
@ -246,6 +269,7 @@
|
||||
if ( [verb isEqualToString:@"estar"] ) return @"estáis";
|
||||
if ( [verb isEqualToString:@"ser"] ) return @"sois";
|
||||
if ( [verb isEqualToString:@"ir"] ) return @"vais";
|
||||
if ( [verb isEqualToString:@"haber"] ) return @"habéis";
|
||||
|
||||
if ( [@"ar" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"áis"];
|
||||
if ( [@"er" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"éis"];
|
||||
@ -256,6 +280,7 @@
|
||||
if ( [verb isEqualToString:@"ser"] ) return @"son";
|
||||
if ( [verb isEqualToString:@"ir"] ) return @"van";
|
||||
if ( [verb isEqualToString:@"oler"] ) return @"huelen";
|
||||
if ( [verb isEqualToString:@"haber"] ) return @"han";
|
||||
|
||||
if ( [@"ar" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"an"];
|
||||
else return [verbStem stringByAppendingString:@"en"];
|
||||
@ -321,7 +346,7 @@
|
||||
if ( [verb isEqualToString:@"ir"] || [verb isEqualToString:@"ser"] ) return @"fuiste";
|
||||
|
||||
if ( [@"ar" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"aste"];
|
||||
else [verbStem stringByAppendingString:@"iste"];
|
||||
else return [verbStem stringByAppendingString:@"iste"];
|
||||
}
|
||||
if ( [person isEqualToString:@"THIRD_PERSON_SINGULAR"]) {
|
||||
|
||||
@ -329,8 +354,8 @@
|
||||
if ( [verb isEqualToString:@"dar"]) return @"dio";
|
||||
if ( [verb isEqualToString:@"ir"] || [verb isEqualToString:@"ser"] ) return @"fue";
|
||||
|
||||
if ( [[verbStem substringFromIndex:[verb length] - 1] isEqualToString:@"e"] ||
|
||||
[[verbStem substringFromIndex:[verb length] - 1] isEqualToString:@"i"])
|
||||
if ( [[verbStem substringFromIndex:[verbStem length] - 1] isEqualToString:@"e"] ||
|
||||
[[verbStem substringFromIndex:[verbStem length] - 1] isEqualToString:@"i"])
|
||||
// If the stem of an -er or -ir ends in a vowel, the -i of the 3rd person changes to y
|
||||
return [verbStem stringByAppendingString:@"yó"];
|
||||
|
||||
@ -380,7 +405,7 @@
|
||||
if ( [verb isEqualToString:@"ir"] || [verb isEqualToString:@"ser"] ) return @"fueron";
|
||||
|
||||
if ( [@"ar" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"aron"];
|
||||
else if ([[verbStem substringFromIndex:[verb length] - 1] isEqualToString:@"j"]) return [verbStem stringByAppendingString:@"eron"];
|
||||
else if ([[verbStem substringFromIndex:[verbStem length] - 1] isEqualToString:@"j"]) return [verbStem stringByAppendingString:@"eron"];
|
||||
else return [verbStem stringByAppendingString:@"ieron"];
|
||||
}
|
||||
|
||||
@ -491,8 +516,33 @@
|
||||
if ( [person isEqualToString:@"THIRD_PERSON_PLURAL"])
|
||||
return [verbStem stringByAppendingString:@"án"];
|
||||
|
||||
return verb;
|
||||
return verb;
|
||||
}
|
||||
|
||||
- (NSString *) conjugateConditionalVerb:(NSString *) verb inPerson:(NSString *) person {
|
||||
|
||||
NSString * verbStem = [self getFutureStem:verb];
|
||||
|
||||
// regular
|
||||
if ( [person isEqualToString:@"FIRST_PERSON_SINGULAR"])
|
||||
return [verbStem stringByAppendingString:@"ía"];
|
||||
|
||||
if ( [person isEqualToString:@"SECOND_PERSON_SINGULAR"])
|
||||
return [verbStem stringByAppendingString:@"ías"];
|
||||
|
||||
if ( [person isEqualToString:@"THIRD_PERSON_SINGULAR"])
|
||||
return [verbStem stringByAppendingString:@"ía"];
|
||||
|
||||
if ( [person isEqualToString:@"FIRST_PERSON_PLURAL"])
|
||||
return [verbStem stringByAppendingString:@"íamos"];
|
||||
|
||||
if ( [person isEqualToString:@"SECOND_PERSON_PLURAL"])
|
||||
return [verbStem stringByAppendingString:@"íais"];
|
||||
|
||||
if ( [person isEqualToString:@"THIRD_PERSON_PLURAL"])
|
||||
return [verbStem stringByAppendingString:@"ían"];
|
||||
|
||||
return verb;
|
||||
}
|
||||
|
||||
- (NSString *) conjugatePerfectVerb:(NSString *) verb {
|
||||
@ -549,24 +599,72 @@
|
||||
|
||||
}
|
||||
|
||||
- (NSString *) conjugateVerb:(NSString *) verb inPerson:(NSString *) person andTense:(NSString *) tense {
|
||||
// el condicional perfecto
|
||||
- (NSString *) conjugateConditionalPerfectVerb:(NSString *) verb inPerson:(NSString *) person {
|
||||
|
||||
// Future of haber + Perfect tense
|
||||
return [[[self conjugateConditionalVerb:@"haber" inPerson:person] stringByAppendingString:@" "] stringByAppendingString:[self conjugatePerfectVerb:verb]];
|
||||
}
|
||||
|
||||
- (NSString *) conjugateGerundVerb:(NSString *) verb inPerson:(NSString *) person {
|
||||
|
||||
NSString * verbStem = [self getStem:verb];
|
||||
NSString * verbExit = [self getExit:verb];
|
||||
|
||||
// Irregular
|
||||
if ( [verb isEqualToString:@"ir"]) return @"yendo";
|
||||
|
||||
if ( [[verbStem substringFromIndex:[verb length] - 1] isEqualToString:@"a"] ||
|
||||
[[verbStem substringFromIndex:[verb length] - 1] isEqualToString:@"e"] ||
|
||||
[[verbStem substringFromIndex:[verb length] - 1] isEqualToString:@"i"])
|
||||
// If the stem of an -er or -ir ends in a vowel, the -i of the 3rd person changes to y
|
||||
return [verbStem stringByAppendingString:@"yendo"];
|
||||
|
||||
if ( [[self simplePresentEtoIEstemChangersArray] containsObject:verb] ) {
|
||||
// Verb changes stem from e to i
|
||||
verbStem = [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e"] withString:@"i"];
|
||||
}
|
||||
|
||||
if ( [[self simplePresentOtoUEstemChangersArray] containsObject:verb] ) {
|
||||
// Verb changes stem from o to u
|
||||
verbStem = [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o"] withString:@"u"];
|
||||
}
|
||||
if ( [[self simplePresentEtoIstemChangersArray] containsObject:verb] ) {
|
||||
// Verb changes stem from e to i
|
||||
verbStem = [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e"] withString:@"i"];
|
||||
}
|
||||
|
||||
// Regular
|
||||
if ( [@"ar" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"ando"];
|
||||
else return [verbStem stringByAppendingString:@"iendo"];
|
||||
|
||||
return verb;
|
||||
}
|
||||
|
||||
- (NSString *) conjugateVerb:(NSString *) verb inPerson:(NSString *) person andTense:(Tense *) tense {
|
||||
|
||||
if ( [tense isEqualToString:@"SIMPLE_PRESENT"])
|
||||
if ( [tense.tense isEqualToString:@"SIMPLE_PRESENT"])
|
||||
return [self conjugateSimplePresentVerb:verb inPerson:person];
|
||||
else if ( [tense isEqualToString:@"SIMPLE_PAST"])
|
||||
else if ( [tense.tense isEqualToString:@"SIMPLE_PAST"])
|
||||
return [self conjugateSimplePastVerb:verb inPerson:person];
|
||||
else if ( [tense isEqualToString:@"IMPERFECT"])
|
||||
else if ( [tense.tense isEqualToString:@"IMPERFECT"])
|
||||
return [self conjugateImperfectVerb:verb inPerson:person];
|
||||
else if ( [tense isEqualToString:@"FUTURE"])
|
||||
else if ( [tense.tense isEqualToString:@"FUTURE"])
|
||||
return [self conjugateFutureVerb:verb inPerson:person];
|
||||
else if ( [tense isEqualToString:@"PERFECT"])
|
||||
else if ( [tense.tense isEqualToString:@"PERFECT"])
|
||||
return [self conjugatePerfectVerb:verb];
|
||||
else if ( [tense isEqualToString:@"PRESENT_PERFECT"])
|
||||
else if ( [tense.tense isEqualToString:@"PRESENT_PERFECT"])
|
||||
return [self conjugatePresentPerfectVerb:verb inPerson:person];
|
||||
else if ( [tense isEqualToString:@"PAST_PERFECT"]) // Pluscuamperfecto
|
||||
else if ( [tense.tense isEqualToString:@"PAST_PERFECT"]) // Pluscuamperfecto
|
||||
return [self conjugatePastPerfectVerb:verb inPerson:person];
|
||||
else if ( [tense isEqualToString:@"FUTURE_PERFECT"])
|
||||
else if ( [tense.tense isEqualToString:@"FUTURE_PERFECT"])
|
||||
return [self conjugateFuturePerfectVerb:verb inPerson:person];
|
||||
else if ( [tense.tense isEqualToString:@"CONDITIONAL_PERFECT"])
|
||||
return [self conjugateConditionalPerfectVerb:verb inPerson:person];
|
||||
else if ( [tense.tense isEqualToString:@"CONDITIONAL"])
|
||||
return [self conjugateConditionalVerb:verb inPerson:person];
|
||||
else if ( [tense.tense isEqualToString:@"GERUND"])
|
||||
return [self conjugateGerundVerb:verb inPerson:person];
|
||||
else
|
||||
return @"Invalid tense";
|
||||
|
||||
|
||||
17
Espagram/Tense.h
Normal file
17
Espagram/Tense.h
Normal file
@ -0,0 +1,17 @@
|
||||
//
|
||||
// Tense.h
|
||||
// Espagram
|
||||
//
|
||||
// Created by Abel Fokkinga on 11/8/12.
|
||||
// Copyright (c) 2012 Abel Fokkinga. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
@interface Tense : NSObject
|
||||
|
||||
@property (nonatomic, strong) NSString * tense;
|
||||
|
||||
- (NSString *) getTenseInLanguage:(NSString *)language;
|
||||
|
||||
@end
|
||||
73
Espagram/Tense.m
Normal file
73
Espagram/Tense.m
Normal file
@ -0,0 +1,73 @@
|
||||
//
|
||||
// Tense.m
|
||||
// Espagram
|
||||
//
|
||||
// Created by Abel Fokkinga on 11/8/12.
|
||||
// Copyright (c) 2012 Abel Fokkinga. All rights reserved.
|
||||
//
|
||||
|
||||
#import "Tense.h"
|
||||
|
||||
@interface Tense()
|
||||
@property (nonatomic, strong) NSDictionary * text;
|
||||
@end
|
||||
|
||||
@implementation Tense
|
||||
|
||||
@synthesize tense = _tense;
|
||||
@synthesize text = _text;
|
||||
|
||||
- (void) tense:(NSString *)t {
|
||||
if ( ![t isEqualToString:_tense]){
|
||||
_tense = t;
|
||||
// reset dictionary
|
||||
NSLog(@"Resetting tense");
|
||||
self.text = nil;
|
||||
}
|
||||
}
|
||||
|
||||
- (NSDictionary *) text {
|
||||
if ( !_text) {
|
||||
if ( [self.tense isEqualToString:@"SIMPLE_PRESENT"])
|
||||
_text = [[NSDictionary alloc] initWithObjects:[[NSArray alloc]
|
||||
initWithObjects:@"Presente",@"Simple present",@"Onvoltooid tegenwoordige tijd",nil] forKeys:[[NSArray alloc] initWithObjects:@"Spanish",@"English",@"Dutch", nil]];
|
||||
if ( [self.tense isEqualToString:@"SIMPLE_PAST"])
|
||||
_text = [[NSDictionary alloc] initWithObjects:[[NSArray alloc]
|
||||
initWithObjects:@"Indefinido",@"Simple past",@"Verleden tijd",nil] forKeys:[[NSArray alloc] initWithObjects:@"Spanish",@"English",@"Dutch", nil]];
|
||||
if ( [self.tense isEqualToString:@"IMPERFECT"])
|
||||
_text = [[NSDictionary alloc] initWithObjects:[[NSArray alloc]
|
||||
initWithObjects:@"Imperfecto",@"Imperfect",@"Onvoltooid verleden tijd",nil] forKeys:[[NSArray alloc] initWithObjects:@"Spanish",@"English",@"Dutch", nil]];
|
||||
if ( [self.tense isEqualToString:@"FUTURE"])
|
||||
_text = [[NSDictionary alloc] initWithObjects:[[NSArray alloc]
|
||||
initWithObjects:@"Futuro",@"Future",@"Toekomstige tijd",nil] forKeys:[[NSArray alloc] initWithObjects:@"Spanish",@"English",@"Dutch", nil]];
|
||||
if ( [self.tense isEqualToString:@"PRESENT_PERFECT"])
|
||||
_text = [[NSDictionary alloc] initWithObjects:[[NSArray alloc]
|
||||
initWithObjects:@"Perfecto",@"Present perfect",@"Pretérito perfecto",nil] forKeys:[[NSArray alloc] initWithObjects:@"Spanish",@"English",@"Dutch", nil]];
|
||||
if ( [self.tense isEqualToString:@"PAST_PERFECT"])
|
||||
_text = [[NSDictionary alloc] initWithObjects:[[NSArray alloc]
|
||||
initWithObjects:@"Pluscuamperfecto",@"Past perfect",@"Pretérito pluscuamperfecto",nil] forKeys:[[NSArray alloc] initWithObjects:@"Spanish",@"English",@"Dutch", nil]];
|
||||
if ( [self.tense isEqualToString:@"FUTURE_PERFECT"])
|
||||
_text = [[NSDictionary alloc] initWithObjects:[[NSArray alloc]
|
||||
initWithObjects:@"Futuro perfecto",@"Future perfect",@"Pretérito pluscuamperfecto",nil] forKeys:[[NSArray alloc] initWithObjects:@"Spanish",@"English",@"Dutch", nil]];
|
||||
if ( [self.tense isEqualToString:@"CONDITIONAL"])
|
||||
_text = [[NSDictionary alloc] initWithObjects:[[NSArray alloc]
|
||||
initWithObjects:@"Condicional",@"Conditional",@"Voorwaardelijke wijs",nil] forKeys:[[NSArray alloc] initWithObjects:@"Spanish",@"English",@"Dutch", nil]];
|
||||
if ( [self.tense isEqualToString:@"GERUND"])
|
||||
_text = [[NSDictionary alloc] initWithObjects:[[NSArray alloc]
|
||||
initWithObjects:@"Gerundio",@"Gerund",@"Tegenwoordig deelwoord",nil] forKeys:[[NSArray alloc] initWithObjects:@"Spanish",@"English",@"Dutch", nil]];
|
||||
if ( [self.tense isEqualToString:@"IMPERATIVE"])
|
||||
_text = [[NSDictionary alloc] initWithObjects:[[NSArray alloc]
|
||||
initWithObjects:@"Imperativo",@"Imperative",@"Gebiedende wijs",nil] forKeys:[[NSArray alloc] initWithObjects:@"Spanish",@"English",@"Dutch", nil]];
|
||||
}
|
||||
|
||||
return _text;
|
||||
}
|
||||
|
||||
- (NSString *) getTenseInLanguage:(NSString *)language {
|
||||
return [self.text objectForKey:language];
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@end
|
||||
@ -4,284 +4,412 @@
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="1930"/>
|
||||
</dependencies>
|
||||
<scenes>
|
||||
<!--Grammar Test View Controller - Conjugar-->
|
||||
<scene sceneID="uhc-Cz-B6l">
|
||||
<!--Espagram Main Table View Controller - Espagram-->
|
||||
<scene sceneID="nJx-mG-4BB">
|
||||
<objects>
|
||||
<viewController id="dia-tp-TaM" customClass="GrammarTestViewController" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" id="3m2-gZ-RjZ">
|
||||
<tableViewController id="1uk-u0-as5" customClass="EspagramMainTableViewController" sceneMemberID="viewController">
|
||||
<tableView key="view" opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="grouped" separatorStyle="singleLineEtched" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="acM-qz-n5h">
|
||||
<rect key="frame" x="0.0" y="64" width="320" height="416"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="hablar" borderStyle="roundedRect" clearsOnBeginEditing="YES" minimumFontSize="17" id="jor-ng-KbD">
|
||||
<rect key="frame" x="22" y="37" width="277" height="30"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no" returnKeyType="done" enablesReturnKeyAutomatically="YES"/>
|
||||
<connections>
|
||||
<action selector="verbEntered:" destination="dia-tp-TaM" eventType="editingDidEndOnExit" id="S5t-oa-yBf"/>
|
||||
<action selector="verbEntered:" destination="dia-tp-TaM" eventType="editingDidEnd" id="ozR-Y7-phc"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="nuI-6L-F6l">
|
||||
<rect key="frame" x="23" y="365" width="274" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinY="YES"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" title="Conjugar">
|
||||
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="verbEntered:" destination="dia-tp-TaM" eventType="touchUpInside" id="5S8-MG-awf"/>
|
||||
</connections>
|
||||
</button>
|
||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="cOa-Tj-00B">
|
||||
<rect key="frame" x="23" y="80" width="277" height="271"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<prototypes>
|
||||
<tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="ConjugatedVerbInTense" textLabel="5fj-E2-f88" detailTextLabel="x84-6k-vHk" style="IBUITableViewCellStyleValue2" id="qf4-ht-1Ae">
|
||||
<rect key="frame" x="0.0" y="22" width="277" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
|
||||
<sections>
|
||||
<tableViewSection headerTitle="Presente de Indicativo" id="mMW-hd-FCJ">
|
||||
<cells>
|
||||
<tableViewCell contentMode="scaleToFill" selectionStyle="blue" accessoryType="detailDisclosureButton" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" textLabel="IBS-zS-JUf" detailTextLabel="UCW-AV-UNA" style="IBUITableViewCellStyleSubtitle" id="Tmc-7h-499">
|
||||
<rect key="frame" x="0.0" y="46" width="320" height="45"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
|
||||
<rect key="frame" x="0.0" y="0.0" width="277" height="43"/>
|
||||
<rect key="frame" x="10" y="1" width="267" height="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Title" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="5fj-E2-f88">
|
||||
<rect key="frame" x="10" y="15" width="91" height="15"/>
|
||||
<label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Presente de indicativo" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="IBS-zS-JUf">
|
||||
<rect key="frame" x="10" y="2" width="192" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="12"/>
|
||||
<color key="textColor" red="0.32156862745098042" green="0.40000000000000002" blue="0.56862745098039214" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="18"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Detail" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="x84-6k-vHk">
|
||||
<rect key="frame" x="107" y="12" width="41" height="19"/>
|
||||
<label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="SImple Present" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="UCW-AV-UNA">
|
||||
<rect key="frame" x="10" y="24" width="96" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<color key="textColor" red="0.50196078431372548" green="0.50196078431372548" blue="0.50196078431372548" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</tableViewCell>
|
||||
</prototypes>
|
||||
</tableView>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Tense" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Sqh-ED-2so">
|
||||
<rect key="frame" x="22" y="8" width="275" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<navigationItem key="navigationItem" title="Conjugar" id="B1B-LG-GWr"/>
|
||||
<tableViewCell contentMode="scaleToFill" selectionStyle="blue" accessoryType="detailDisclosureButton" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" textLabel="Omp-17-V17" detailTextLabel="9H8-Rl-D7E" style="IBUITableViewCellStyleSubtitle" id="Uji-F3-5u8">
|
||||
<rect key="frame" x="0.0" y="91" width="320" height="45"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
|
||||
<rect key="frame" x="10" y="0.0" width="267" height="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Pretérito Perfecto" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Omp-17-V17">
|
||||
<rect key="frame" x="10" y="2" width="152" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="18"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Present Perfect" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="9H8-Rl-D7E">
|
||||
<rect key="frame" x="10" y="24" width="97" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<color key="textColor" red="0.50196078430000002" green="0.50196078430000002" blue="0.50196078430000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</tableViewCell>
|
||||
</cells>
|
||||
</tableViewSection>
|
||||
<tableViewSection headerTitle="Pasado de Indicativo" id="Eks-aE-qtP">
|
||||
<cells>
|
||||
<tableViewCell contentMode="scaleToFill" selectionStyle="blue" accessoryType="detailDisclosureButton" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" textLabel="aKe-u6-nhd" detailTextLabel="atb-Mu-fep" style="IBUITableViewCellStyleSubtitle" id="pqp-EJ-hFn">
|
||||
<rect key="frame" x="0.0" y="182" width="320" height="45"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
|
||||
<rect key="frame" x="10" y="1" width="267" height="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Indefinido" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="aKe-u6-nhd">
|
||||
<rect key="frame" x="10" y="2" width="86" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="18"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Simple Past" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="atb-Mu-fep">
|
||||
<rect key="frame" x="10" y="24" width="75" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<color key="textColor" red="0.50196078431372548" green="0.50196078431372548" blue="0.50196078431372548" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</tableViewCell>
|
||||
<tableViewCell contentMode="scaleToFill" selectionStyle="blue" accessoryType="detailDisclosureButton" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" textLabel="phK-Le-q8G" detailTextLabel="Iy6-nM-6Ph" style="IBUITableViewCellStyleSubtitle" id="DRW-6l-3nC">
|
||||
<rect key="frame" x="0.0" y="227" width="320" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
|
||||
<rect key="frame" x="10" y="0.0" width="267" height="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Imperfecto" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="phK-Le-q8G">
|
||||
<rect key="frame" x="10" y="2" width="93" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="18"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Imperfect" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Iy6-nM-6Ph">
|
||||
<rect key="frame" x="10" y="24" width="59" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<color key="textColor" red="0.50196078431372548" green="0.50196078431372548" blue="0.50196078431372548" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</tableViewCell>
|
||||
<tableViewCell contentMode="scaleToFill" selectionStyle="blue" accessoryType="detailDisclosureButton" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" textLabel="eLc-Pb-zCV" detailTextLabel="43S-hX-rqg" style="IBUITableViewCellStyleSubtitle" id="3bO-pz-FI1">
|
||||
<rect key="frame" x="0.0" y="271" width="320" height="45"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
|
||||
<rect key="frame" x="10" y="0.0" width="267" height="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Pluscuamperfecto" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="eLc-Pb-zCV">
|
||||
<rect key="frame" x="10" y="2" width="157" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="18"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Past Perfect" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="43S-hX-rqg">
|
||||
<rect key="frame" x="10" y="24" width="77" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<color key="textColor" red="0.50196078431372548" green="0.50196078431372548" blue="0.50196078431372548" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</tableViewCell>
|
||||
</cells>
|
||||
</tableViewSection>
|
||||
<tableViewSection headerTitle="Futuro de Indicativo" id="C6J-A6-8sE">
|
||||
<cells>
|
||||
<tableViewCell contentMode="scaleToFill" selectionStyle="blue" accessoryType="detailDisclosureButton" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" textLabel="jjt-Kh-pJE" detailTextLabel="yA3-3t-aXZ" style="IBUITableViewCellStyleSubtitle" id="7M9-cg-1Re">
|
||||
<rect key="frame" x="0.0" y="362" width="320" height="45"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
|
||||
<rect key="frame" x="10" y="1" width="267" height="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Futuro" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="jjt-Kh-pJE">
|
||||
<rect key="frame" x="10" y="2" width="57" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="18"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Simple Future" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="yA3-3t-aXZ">
|
||||
<rect key="frame" x="10" y="24" width="88" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<color key="textColor" red="0.50196078431372548" green="0.50196078431372548" blue="0.50196078431372548" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</tableViewCell>
|
||||
<tableViewCell contentMode="scaleToFill" selectionStyle="blue" accessoryType="detailDisclosureButton" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" textLabel="pMQ-qb-zgh" detailTextLabel="4ue-yS-VHX" style="IBUITableViewCellStyleSubtitle" id="xAM-9O-itr">
|
||||
<rect key="frame" x="0.0" y="407" width="320" height="45"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
|
||||
<rect key="frame" x="10" y="0.0" width="267" height="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Futuro Perfecto" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="pMQ-qb-zgh">
|
||||
<rect key="frame" x="10" y="2" width="135" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="18"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Future Perfect" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="4ue-yS-VHX">
|
||||
<rect key="frame" x="10" y="24" width="89" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<color key="textColor" red="0.50196078431372548" green="0.50196078431372548" blue="0.50196078431372548" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</tableViewCell>
|
||||
</cells>
|
||||
</tableViewSection>
|
||||
<tableViewSection headerTitle="Presente de Subjuntivo" id="mxT-me-1gn">
|
||||
<cells>
|
||||
<tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" textLabel="kOb-g1-PQa" detailTextLabel="lOV-2p-acd" style="IBUITableViewCellStyleSubtitle" id="rcZ-mr-QH1">
|
||||
<rect key="frame" x="0.0" y="498" width="320" height="46"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
|
||||
<rect key="frame" x="10" y="1" width="300" height="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Presente de Subjuntivo" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="kOb-g1-PQa">
|
||||
<rect key="frame" x="10" y="2" width="201" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="18"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Subjunctive Present" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="lOV-2p-acd">
|
||||
<rect key="frame" x="10" y="24" width="125" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<color key="textColor" red="0.50196078430000002" green="0.50196078430000002" blue="0.50196078430000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</tableViewCell>
|
||||
</cells>
|
||||
</tableViewSection>
|
||||
<tableViewSection headerTitle="Condicional" id="kRC-7a-SX0">
|
||||
<cells>
|
||||
<tableViewCell contentMode="scaleToFill" selectionStyle="blue" accessoryType="detailDisclosureButton" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" textLabel="fT6-Nt-jMT" detailTextLabel="Dwc-pC-EDU" style="IBUITableViewCellStyleSubtitle" id="mI2-3t-9UQ">
|
||||
<rect key="frame" x="0.0" y="590" width="320" height="45"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
|
||||
<rect key="frame" x="10" y="1" width="267" height="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Condicional" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="fT6-Nt-jMT">
|
||||
<rect key="frame" x="10" y="2" width="103" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="18"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Condicional" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Dwc-pC-EDU">
|
||||
<rect key="frame" x="10" y="24" width="74" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<color key="textColor" red="0.50196078430000002" green="0.50196078430000002" blue="0.50196078430000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</tableViewCell>
|
||||
<tableViewCell contentMode="scaleToFill" selectionStyle="blue" accessoryType="detailDisclosureButton" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" textLabel="QPf-0m-XRk" detailTextLabel="Bql-c6-RfW" style="IBUITableViewCellStyleSubtitle" id="jNM-ge-Waw">
|
||||
<rect key="frame" x="0.0" y="635" width="320" height="45"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
|
||||
<rect key="frame" x="10" y="0.0" width="267" height="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Condicional Perfect" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="QPf-0m-XRk">
|
||||
<rect key="frame" x="10" y="2" width="170" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="18"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Condicional Perfect" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Bql-c6-RfW">
|
||||
<rect key="frame" x="10" y="24" width="122" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<color key="textColor" red="0.50196078430000002" green="0.50196078430000002" blue="0.50196078430000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</tableViewCell>
|
||||
</cells>
|
||||
</tableViewSection>
|
||||
<tableViewSection headerTitle="Gerundio" id="hT0-3m-6nj">
|
||||
<cells>
|
||||
<tableViewCell contentMode="scaleToFill" selectionStyle="blue" accessoryType="detailDisclosureButton" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" textLabel="Giz-oW-p2Q" detailTextLabel="Unw-gf-Zhy" style="IBUITableViewCellStyleSubtitle" id="ZHE-B1-nSM">
|
||||
<rect key="frame" x="0.0" y="726" width="320" height="46"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
|
||||
<rect key="frame" x="10" y="1" width="267" height="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Gerundio" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Giz-oW-p2Q">
|
||||
<rect key="frame" x="10" y="2" width="80" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="18"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Gerund" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Unw-gf-Zhy">
|
||||
<rect key="frame" x="10" y="24" width="47" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<color key="textColor" red="0.50196078430000002" green="0.50196078430000002" blue="0.50196078430000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</tableViewCell>
|
||||
</cells>
|
||||
</tableViewSection>
|
||||
</sections>
|
||||
<connections>
|
||||
<outlet property="dataSource" destination="1uk-u0-as5" id="Kdo-S4-8aE"/>
|
||||
<outlet property="delegate" destination="1uk-u0-as5" id="pP7-Wn-nPz"/>
|
||||
</connections>
|
||||
</tableView>
|
||||
<navigationItem key="navigationItem" title="Espagram" id="qDb-V0-go8"/>
|
||||
<connections>
|
||||
<outlet property="tenseLabel" destination="Sqh-ED-2so" id="Kf0-0V-6zb"/>
|
||||
<outlet property="verbInput" destination="jor-ng-KbD" id="orV-fs-rNf"/>
|
||||
<outlet property="view" destination="acM-qz-n5h" id="Wxu-uk-Yfp"/>
|
||||
<segue destination="o8A-Pj-xMi" kind="push" identifier="Testing" id="fev-Bn-P0z"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="Anh-ro-d0k" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</tableViewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="cqe-aJ-sQo" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="1629" y="-15"/>
|
||||
</scene>
|
||||
<!--Espagram Main View Controller - Espagram-->
|
||||
<scene sceneID="5">
|
||||
<objects>
|
||||
<viewController id="2" customClass="EspagramMainViewController" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" id="3">
|
||||
<rect key="frame" x="0.0" y="64" width="320" height="416"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="1iz-i9-xxF">
|
||||
<rect key="frame" x="47" y="15" width="226" height="27"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" title="Presente">
|
||||
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="testTense:" destination="2" eventType="touchUpInside" id="xt1-zD-usB"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="Q2a-f0-wVr">
|
||||
<rect key="frame" x="47" y="49" width="226" height="25"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" title="Pretérito">
|
||||
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="testTense:" destination="2" eventType="touchUpInside" id="UXf-MS-Lim"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="FF1-s5-Nsw">
|
||||
<rect key="frame" x="47" y="81" width="226" height="26"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" title="Imperfecto">
|
||||
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="testTense:" destination="2" eventType="touchUpInside" id="l2x-vf-Vge"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="bTv-Fp-Hrt">
|
||||
<rect key="frame" x="47" y="286" width="226" height="27"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" title="Imperfecto de subjuntivo">
|
||||
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="testTense:" destination="2" eventType="touchUpInside" id="K0y-OZ-RW0"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="TuL-Jh-4Gu">
|
||||
<rect key="frame" x="47" y="325" width="226" height="27"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" title="Condicional">
|
||||
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="testTense:" destination="2" eventType="touchUpInside" id="lat-TV-jnf"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="nNN-aa-v5R">
|
||||
<rect key="frame" x="47" y="114" width="226" height="26"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" title="Futuro">
|
||||
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="testTense:" destination="2" eventType="touchUpInside" id="HLC-xw-lXs"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="kUz-13-qcM">
|
||||
<rect key="frame" x="47" y="147" width="226" height="28"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" title="Perfecto">
|
||||
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="testTense:" destination="2" eventType="touchUpInside" id="LhI-Qb-1ia"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="4fh-Su-vGL">
|
||||
<rect key="frame" x="47" y="185" width="226" height="25"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" title="Pluscuamperfecto">
|
||||
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="testTense:" destination="2" eventType="touchUpInside" id="jlM-wK-GyG"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="Sjr-s5-fuk">
|
||||
<rect key="frame" x="47" y="217" width="226" height="26"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" title="Futuro Perfecto">
|
||||
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="testTense:" destination="2" eventType="touchUpInside" id="0VI-DP-LX9"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="K17-5x-bf4">
|
||||
<rect key="frame" x="47" y="250" width="226" height="29"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" title="Presente de subjuntivo">
|
||||
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="testTense:" destination="2" eventType="touchUpInside" id="Mgx-V2-2uJ"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" red="0.80000001192092896" green="1" blue="0.40000000596046448" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</view>
|
||||
<navigationItem key="navigationItem" title="Espagram" id="C60-pb-13m"/>
|
||||
<connections>
|
||||
<segue destination="o8A-Pj-xMi" kind="push" identifier="Testing" id="KJU-hK-zW0"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="4" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="756" y="-15"/>
|
||||
<point key="canvasLocation" x="771" y="-15"/>
|
||||
</scene>
|
||||
<!--Espagram Test View Controller - Conjugate-->
|
||||
<scene sceneID="lbJ-Av-XmM">
|
||||
<objects>
|
||||
<viewController title="Conjugate" id="o8A-Pj-xMi" customClass="EspagramTestViewController" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" id="ee2-Vd-mbR" customClass="EspagramTestView">
|
||||
<view key="view" contentMode="scaleToFill" id="ee2-Vd-mbR">
|
||||
<rect key="frame" x="0.0" y="64" width="320" height="416"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="hablar" borderStyle="roundedRect" clearsOnBeginEditing="YES" minimumFontSize="17" clearButtonMode="whileEditing" id="rgc-bE-kfV">
|
||||
<rect key="frame" x="20" y="20" width="280" height="30"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no" returnKeyType="go" enablesReturnKeyAutomatically="YES"/>
|
||||
<connections>
|
||||
<action selector="EditingDidEnd:" destination="o8A-Pj-xMi" eventType="editingDidEndOnExit" id="3pa-XA-vTf"/>
|
||||
<action selector="EditingDidEnd:" destination="o8A-Pj-xMi" eventType="editingDidEnd" id="7dh-pk-ylw"/>
|
||||
</connections>
|
||||
</textField>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<navigationItem key="navigationItem" id="VAd-Jw-eoG">
|
||||
<navigationItem key="navigationItem" title="Testing" id="VAd-Jw-eoG">
|
||||
<barButtonItem key="rightBarButtonItem" title="Conjugar" id="EIF-L4-CbQ">
|
||||
<connections>
|
||||
<segue destination="dia-tp-TaM" kind="push" identifier="Conjugate" id="aA3-Tn-u0e"/>
|
||||
<segue destination="1HP-4w-6pR" kind="push" identifier="Conjugate" id="8h5-oS-v3q"/>
|
||||
</connections>
|
||||
</barButtonItem>
|
||||
</navigationItem>
|
||||
<connections>
|
||||
<outlet property="view" destination="ee2-Vd-mbR" id="PJO-JT-dJE"/>
|
||||
<outlet property="verbInput" destination="rgc-bE-kfV" id="dUd-0H-5Wb"/>
|
||||
<outlet property="view" destination="ee2-Vd-mbR" id="eEf-KY-vbZ"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="3Kf-gx-xfq" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="1220" y="-15"/>
|
||||
<point key="canvasLocation" x="1222" y="-15"/>
|
||||
</scene>
|
||||
<!--Espagram Conjugation Table View Controller - Conjugation-->
|
||||
<scene sceneID="Rhi-w3-Ide">
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="YsJ-g2-hqn" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
<tableViewController id="1HP-4w-6pR" customClass="EspagramConjugationTableViewController" sceneMemberID="viewController">
|
||||
<tableView key="view" opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="center" alwaysBounceVertical="YES" dataMode="prototypes" style="grouped" separatorStyle="singleLineEtched" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="DJ6-de-4Ph">
|
||||
<rect key="frame" x="0.0" y="64" width="320" height="416"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
|
||||
<prototypes>
|
||||
<tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="ConjugatedVerbPerson" textLabel="5wx-ex-sUs" detailTextLabel="8Wv-aE-Zva" style="IBUITableViewCellStyleValue2" id="H3y-AM-mRp">
|
||||
<rect key="frame" x="0.0" y="46" width="320" height="46"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
|
||||
<rect key="frame" x="10" y="1" width="300" height="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Title" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="5wx-ex-sUs">
|
||||
<rect key="frame" x="10" y="15" width="67" height="15"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="12"/>
|
||||
<color key="textColor" red="0.32156862745098042" green="0.40000000000000002" blue="0.56862745098039214" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Detail" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="8Wv-aE-Zva">
|
||||
<rect key="frame" x="83" y="12" width="41" height="19"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</tableViewCell>
|
||||
</prototypes>
|
||||
<connections>
|
||||
<outlet property="dataSource" destination="1HP-4w-6pR" id="pp0-Uk-K61"/>
|
||||
<outlet property="delegate" destination="1HP-4w-6pR" id="8RV-NY-y1d"/>
|
||||
</connections>
|
||||
</tableView>
|
||||
<navigationItem key="navigationItem" title="Conjugation" id="GsA-0e-S8C"/>
|
||||
</tableViewController>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="1663" y="-15"/>
|
||||
</scene>
|
||||
<!--Navigation Controller-->
|
||||
<scene sceneID="mnv-kd-DFc">
|
||||
@ -294,14 +422,33 @@
|
||||
</navigationBar>
|
||||
<nil name="viewControllers"/>
|
||||
<connections>
|
||||
<segue destination="2" kind="relationship" relationship="rootViewController" id="lMt-DE-K9K"/>
|
||||
<segue destination="1uk-u0-as5" kind="relationship" relationship="rootViewController" id="fIx-CV-dN3"/>
|
||||
</connections>
|
||||
</navigationController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="11N-1H-dwy" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="306" y="20"/>
|
||||
<point key="canvasLocation" x="240" y="-15"/>
|
||||
</scene>
|
||||
</scenes>
|
||||
<classes>
|
||||
<class className="EspagramConjugationTableViewController" superclassName="UITableViewController">
|
||||
<source key="sourceIdentifier" type="project" relativePath="./Classes/EspagramConjugationTableViewController.h"/>
|
||||
<relationships>
|
||||
<relationship kind="action" name="verbEntered:"/>
|
||||
<relationship kind="outlet" name="verbInput" candidateClass="UITextField"/>
|
||||
</relationships>
|
||||
</class>
|
||||
<class className="EspagramMainTableViewController" superclassName="UITableViewController">
|
||||
<source key="sourceIdentifier" type="project" relativePath="./Classes/EspagramMainTableViewController.h"/>
|
||||
</class>
|
||||
<class className="EspagramTestViewController" superclassName="UIViewController">
|
||||
<source key="sourceIdentifier" type="project" relativePath="./Classes/EspagramTestViewController.h"/>
|
||||
<relationships>
|
||||
<relationship kind="action" name="EditingDidEnd:" candidateClass="UITextField"/>
|
||||
<relationship kind="outlet" name="verbInput" candidateClass="UITextField"/>
|
||||
</relationships>
|
||||
</class>
|
||||
</classes>
|
||||
<simulatedMetricsContainer key="defaultSimulatedMetrics">
|
||||
<simulatedStatusBarMetrics key="statusBar"/>
|
||||
<simulatedOrientationMetrics key="orientation"/>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user