#import
<Foundation/Foundation.h>
@interface ABPerson : NSObject
@property ( nonatomic , strong ) UIImage *image;
@property ( nonatomic , strong ) NSString *number;
@end
#import <UIKit/UIKit.h>
#import "ABPerson.h"
#import "MYYSecondViewController.h"
@interface MYYFirstViewController : UIViewController
@property ( nonatomic , strong ) UIImageView *headImage;
@property ( nonatomic , strong ) ABPerson *personInfo;
-( IBAction )didClickEnterButton:( id )sender;
@end
@interface ABPerson : NSObject
@property ( nonatomic , strong ) UIImage *image;
@property ( nonatomic , strong ) NSString *number;
@end
@implementation
ABPerson
-( void )dealloc{
self . number = nil ;
self . image = nil ;
}
@end
-( void )dealloc{
self . number = nil ;
self . image = nil ;
}
@end
#import
<Foundation/Foundation.h>
#import "ABPerson.h"
@interface ABPersonInfo : NSObject
+ ( instancetype )defaultManager;
//添加联系人
- ( void )addPersonInfoObject:( ABPerson *)personInfo;
//获取对应下标值的联系人信息
- ( ABPerson *)personInfoObjectAtIndex:( NSUInteger ) index;
//获取联系人的个数
- ( NSUInteger )personInfoCount;
@end
#import "ABPerson.h"
@interface ABPersonInfo : NSObject
+ ( instancetype )defaultManager;
//添加联系人
- ( void )addPersonInfoObject:( ABPerson *)personInfo;
//获取对应下标值的联系人信息
- ( ABPerson *)personInfoObjectAtIndex:( NSUInteger ) index;
//获取联系人的个数
- ( NSUInteger )personInfoCount;
@end
#import
"ABPersonInfo.h"
@interface ABPersonInfo ()
@property ( nonatomic , readonly ) NSMutableArray *personInfoList;
@end
@implementation ABPersonInfo
+ ( instancetype )defaultManager
{
static ABPersonInfo *s_ABPersonInfo= nil ;
static dispatch_once_t onceToken;
dispatch_once (&onceToken, ^{
if (s_ABPersonInfo == nil ) {
s_ABPersonInfo = [[ ABPersonInfo alloc ] init ];
}
});
return s_ABPersonInfo;
}
- ( instancetype )init
{
self = [ super init ];
if ( self ) {
//实例化单例对象内的联系人存储机制...
_personInfoList = [[ NSMutableArray alloc ] init ];
}
return self ;
}
//添加联系人
- ( void )addPersonInfoObject:( ABPerson *)personInfo
{
[ self . personInfoList addObject :personInfo];
NSLog ( @"%@" , self . personInfoList );
}
//获取对应下标值的联系人信息
- ( ABPerson *)personInfoObjectAtIndex:( NSUInteger ) index;
{
if (index >= self . personInfoCount )
return nil ;
return self . personInfoList [index];
}
//获取联系人的个数
- ( NSUInteger )personInfoCount
{
return self . personInfoList . count ;
}
@end
@interface ABPersonInfo ()
@property ( nonatomic , readonly ) NSMutableArray *personInfoList;
@end
@implementation ABPersonInfo
+ ( instancetype )defaultManager
{
static ABPersonInfo *s_ABPersonInfo= nil ;
static dispatch_once_t onceToken;
dispatch_once (&onceToken, ^{
if (s_ABPersonInfo == nil ) {
s_ABPersonInfo = [[ ABPersonInfo alloc ] init ];
}
});
return s_ABPersonInfo;
}
- ( instancetype )init
{
self = [ super init ];
if ( self ) {
//实例化单例对象内的联系人存储机制...
_personInfoList = [[ NSMutableArray alloc ] init ];
}
return self ;
}
//添加联系人
- ( void )addPersonInfoObject:( ABPerson *)personInfo
{
[ self . personInfoList addObject :personInfo];
NSLog ( @"%@" , self . personInfoList );
}
//获取对应下标值的联系人信息
- ( ABPerson *)personInfoObjectAtIndex:( NSUInteger ) index;
{
if (index >= self . personInfoCount )
return nil ;
return self . personInfoList [index];
}
//获取联系人的个数
- ( NSUInteger )personInfoCount
{
return self . personInfoList . count ;
}
@end
#import <UIKit/UIKit.h>
#import "ABPerson.h"
#import "MYYSecondViewController.h"
@interface MYYFirstViewController : UIViewController
@property ( nonatomic , strong ) UIImageView *headImage;
@property ( nonatomic , strong ) ABPerson *personInfo;
-( IBAction )didClickEnterButton:( id )sender;
@end
#import
"MYYFirstViewController.h"
#import <sqlite3.h>
//创建表格的回调函数
int createCallBack ( void *content, int intValue, char **char1, char **char2){
NSLog ( @"%s" ,__func__);
return 1 ;
}
@interface MYYFirstViewController ()
@end
@implementation MYYFirstViewController{
NSUInteger sum;
NSUInteger sub;
}
- ( id )initWithNibName:( NSString *)nibNameOrNil bundle:( NSBundle *)nibBundleOrNil
{
self = [ super initWithNibName :nibNameOrNil bundle :nibBundleOrNil];
if ( self ) {
// Custom initialization
}
return self ;
}
- ( void )viewWillAppear:( BOOL )animated
{
[ super viewWillAppear :animated];
// NSUInteger count = [[ABPersonInfo defaultManager]personInfoCount];
// ABPerson *personInfo = [[ABPersonInfo defaultManager]personInfoObjectAtIndex:0];
// self.title = personInfo.number;
// self.headImage.image =personInfo.image;
//
}
- ( void )viewDidLoad
{
[ super viewDidLoad ];
// Do any additional setup after loading the view from its nib.
UIBarButtonItem *rightButton = [[ UIBarButtonItem alloc ] initWithImage :[ UIImage imageNamed : @"3icon" ] style : UIBarButtonItemStyleDone target : self action : @selector (_didClickNextPage:)];
self . navigationItem . rightBarButtonItem = rightButton;
UIBarButtonItem *rightButton1 = [[ UIBarButtonItem alloc ] initWithImage :[ UIImage imageNamed : @"2icon" ] style : UIBarButtonItemStyleDone target : self action : @selector (_didClickNextPage1:)];
self . navigationItem . leftBarButtonItem = rightButton1;
UIImage *image = [ UIImage imageNamed : @"1" ];
self . headImage = [[ UIImageView alloc ] initWithImage :image];
[ self . view addSubview : self . headImage ];
[ self . headImage setFrame : CGRectMake ( 120 , 120 , 80 , 80 )];
// //打开文件
NSString *documentPath = NSSearchPathForDirectoriesInDomains ( 9 , 1 , 1 )[ 0 ];
// //创建文件名
NSString *sqlitePath = [documentPath stringByAppendingString : @"/save.sqlite" ];
sqlite3 *db = NULL ;
// //打开数据库
int result = sqlite3_open (sqlitePath. UTF8String , &db);
//创建表个对象
NSString *createSQL = @"create table PersonList(p_number text,p_image text);" ;
char *error = NULL ;
result = sqlite3_exec (db, createSQL. UTF8String , createCallBack , @"hehe" , &error);
}
- ( void )didReceiveMemoryWarning
{
[ super didReceiveMemoryWarning ];
// Dispose of any resources that can be recreated.
}
-( IBAction )didClickEnterButton:( id )sender{
MYYSecondViewController *secondVC = [[ MYYSecondViewController alloc ] initWithNibName : @"MYYSecondViewController" bundle : nil ];
[ self . navigationController pushViewController :secondVC animated : YES ];
}
-( NSUInteger )_didClickNextPage:( NSUInteger )sender{
NSUInteger count = [[ ABPersonInfo defaultManager ] personInfoCount ];
if ( sum < count) {
ABPerson *personInfo = [[ ABPersonInfo defaultManager ] personInfoObjectAtIndex : sum ];
self . title = personInfo. number ;
self . headImage . image =personInfo. image ;
sum ++;
}
return sum ;
}
-( NSUInteger )_didClickNextPage1:( NSUInteger )sender{
if ( sum > 0 ){
ABPerson *personInfo = [[ ABPersonInfo defaultManager ] personInfoObjectAtIndex : sum - 1 ];
self . title = personInfo. number ;
self . headImage . image =personInfo. image ;
sum --;
}
return sum ;
}
@end
#import <sqlite3.h>
//创建表格的回调函数
int createCallBack ( void *content, int intValue, char **char1, char **char2){
NSLog ( @"%s" ,__func__);
return 1 ;
}
@interface MYYFirstViewController ()
@end
@implementation MYYFirstViewController{
NSUInteger sum;
NSUInteger sub;
}
- ( id )initWithNibName:( NSString *)nibNameOrNil bundle:( NSBundle *)nibBundleOrNil
{
self = [ super initWithNibName :nibNameOrNil bundle :nibBundleOrNil];
if ( self ) {
// Custom initialization
}
return self ;
}
- ( void )viewWillAppear:( BOOL )animated
{
[ super viewWillAppear :animated];
// NSUInteger count = [[ABPersonInfo defaultManager]personInfoCount];
// ABPerson *personInfo = [[ABPersonInfo defaultManager]personInfoObjectAtIndex:0];
// self.title = personInfo.number;
// self.headImage.image =personInfo.image;
//
}
- ( void )viewDidLoad
{
[ super viewDidLoad ];
// Do any additional setup after loading the view from its nib.
UIBarButtonItem *rightButton = [[ UIBarButtonItem alloc ] initWithImage :[ UIImage imageNamed : @"3icon" ] style : UIBarButtonItemStyleDone target : self action : @selector (_didClickNextPage:)];
self . navigationItem . rightBarButtonItem = rightButton;
UIBarButtonItem *rightButton1 = [[ UIBarButtonItem alloc ] initWithImage :[ UIImage imageNamed : @"2icon" ] style : UIBarButtonItemStyleDone target : self action : @selector (_didClickNextPage1:)];
self . navigationItem . leftBarButtonItem = rightButton1;
UIImage *image = [ UIImage imageNamed : @"1" ];
self . headImage = [[ UIImageView alloc ] initWithImage :image];
[ self . view addSubview : self . headImage ];
[ self . headImage setFrame : CGRectMake ( 120 , 120 , 80 , 80 )];
// //打开文件
NSString *documentPath = NSSearchPathForDirectoriesInDomains ( 9 , 1 , 1 )[ 0 ];
// //创建文件名
NSString *sqlitePath = [documentPath stringByAppendingString : @"/save.sqlite" ];
sqlite3 *db = NULL ;
// //打开数据库
int result = sqlite3_open (sqlitePath. UTF8String , &db);
//创建表个对象
NSString *createSQL = @"create table PersonList(p_number text,p_image text);" ;
char *error = NULL ;
result = sqlite3_exec (db, createSQL. UTF8String , createCallBack , @"hehe" , &error);
}
- ( void )didReceiveMemoryWarning
{
[ super didReceiveMemoryWarning ];
// Dispose of any resources that can be recreated.
}
-( IBAction )didClickEnterButton:( id )sender{
MYYSecondViewController *secondVC = [[ MYYSecondViewController alloc ] initWithNibName : @"MYYSecondViewController" bundle : nil ];
[ self . navigationController pushViewController :secondVC animated : YES ];
}
-( NSUInteger )_didClickNextPage:( NSUInteger )sender{
NSUInteger count = [[ ABPersonInfo defaultManager ] personInfoCount ];
if ( sum < count) {
ABPerson *personInfo = [[ ABPersonInfo defaultManager ] personInfoObjectAtIndex : sum ];
self . title = personInfo. number ;
self . headImage . image =personInfo. image ;
sum ++;
}
return sum ;
}
-( NSUInteger )_didClickNextPage1:( NSUInteger )sender{
if ( sum > 0 ){
ABPerson *personInfo = [[ ABPersonInfo defaultManager ] personInfoObjectAtIndex : sum - 1 ];
self . title = personInfo. number ;
self . headImage . image =personInfo. image ;
sum --;
}
return sum ;
}
@end
#import
<UIKit/UIKit.h>
#import "ABPerson.h"
@interface MYYSecondViewController : UIViewController < UINavigationControllerDelegate , UIImagePickerControllerDelegate , UITextFieldDelegate ]] >
@property ( nonatomic , strong ) IBOutlet UITextField *numberField;
@property ( nonatomic , strong ) IBOutlet UIButton *imageButton;
@property ( nonatomic , strong ) ABPerson *person;
-( IBAction )didClickButton :( id )sender;
@end
#import "ABPerson.h"
@interface MYYSecondViewController : UIViewController < UINavigationControllerDelegate , UIImagePickerControllerDelegate , UITextFieldDelegate ]] >
@property ( nonatomic , strong ) IBOutlet UITextField *numberField;
@property ( nonatomic , strong ) IBOutlet UIButton *imageButton;
@property ( nonatomic , strong ) ABPerson *person;
-( IBAction )didClickButton :( id )sender;
@end
#import
"MYYSecondViewController.h"
@interface MYYSecondViewController ()
@property ( nonatomic , strong ) UIImage *tempImage;
@property ( nonatomic , strong ) NSString *tempNumber;
@end
@implementation MYYSecondViewController
- ( id )initWithNibName:( NSString *)nibNameOrNil bundle:( NSBundle *)nibBundleOrNil
{
self = [ super initWithNibName :nibNameOrNil bundle :nibBundleOrNil];
if ( self ) {
// Custom initialization
}
return self ;
}
- ( void )viewDidLoad
{
[ super viewDidLoad ];
// Do any additional setup after loading the view from its nib.
UIBarButtonItem *right = [[ UIBarButtonItem alloc ] initWithBarButtonSystemItem : UIBarButtonSystemItemSave target : self action : @selector (_didClickSave:)];
self . navigationItem . rightBarButtonItem = right;
}
- ( void )viewWillAppear:( BOOL )animated
{
[ super viewWillAppear :animated];
if ( self . person == nil ) {
self . person = [[ ABPerson alloc ] init ];
}
}
- ( void )didReceiveMemoryWarning
{
[ super didReceiveMemoryWarning ];
// Dispose of any resources that can be recreated.
}
-( void )_didClickSave:( UIBarButtonItem *)sender{
ABPerson *person = [[ ABPerson alloc ] init ];
person. image = self . tempImage ;
person. number = self . tempNumber ;
[[ ABPersonInfo defaultManager ] addPersonInfoObject :person];
[ self . navigationController popToRootViewControllerAnimated : YES ];
}
-( IBAction )didClickButton :( id )sender{
UIImagePickerController *pickerVC = [[ UIImagePickerController alloc ] init ];
[pickerVC setAllowsEditing : YES ];
[pickerVC setSourceType : UIImagePickerControllerSourceTypePhotoLibrary ];
[pickerVC setDelegate : self ];
[ self presentViewController :pickerVC animated : YES completion : NULL ];
}
//#pragma mark - 图片获取代理对象
- ( void )imagePickerController:( UIImagePickerController *)picker didFinishPickingMediaWithInfo:( NSDictionary *)info
{
[picker dismissViewControllerAnimated : YES completion : NULL ];
UIImage *image = info[ UIImagePickerControllerOriginalImage ];
self . tempImage = image;
[ self . imageButton setBackgroundImage : self . tempImage forState : UIControlStateNormal ];
}
- ( BOOL )textFieldShouldReturn:( UITextField *)textField
{
[textField resignFirstResponder ];
return YES ;
}
-( BOOL )textFieldShouldEndEditing:( UITextField *)textField{
self . tempNumber = self . numberField . text ;
return YES ;
}
@end
@interface MYYSecondViewController ()
@property ( nonatomic , strong ) UIImage *tempImage;
@property ( nonatomic , strong ) NSString *tempNumber;
@end
@implementation MYYSecondViewController
- ( id )initWithNibName:( NSString *)nibNameOrNil bundle:( NSBundle *)nibBundleOrNil
{
self = [ super initWithNibName :nibNameOrNil bundle :nibBundleOrNil];
if ( self ) {
// Custom initialization
}
return self ;
}
- ( void )viewDidLoad
{
[ super viewDidLoad ];
// Do any additional setup after loading the view from its nib.
UIBarButtonItem *right = [[ UIBarButtonItem alloc ] initWithBarButtonSystemItem : UIBarButtonSystemItemSave target : self action : @selector (_didClickSave:)];
self . navigationItem . rightBarButtonItem = right;
}
- ( void )viewWillAppear:( BOOL )animated
{
[ super viewWillAppear :animated];
if ( self . person == nil ) {
self . person = [[ ABPerson alloc ] init ];
}
}
- ( void )didReceiveMemoryWarning
{
[ super didReceiveMemoryWarning ];
// Dispose of any resources that can be recreated.
}
-( void )_didClickSave:( UIBarButtonItem *)sender{
ABPerson *person = [[ ABPerson alloc ] init ];
person. image = self . tempImage ;
person. number = self . tempNumber ;
[[ ABPersonInfo defaultManager ] addPersonInfoObject :person];
[ self . navigationController popToRootViewControllerAnimated : YES ];
}
-( IBAction )didClickButton :( id )sender{
UIImagePickerController *pickerVC = [[ UIImagePickerController alloc ] init ];
[pickerVC setAllowsEditing : YES ];
[pickerVC setSourceType : UIImagePickerControllerSourceTypePhotoLibrary ];
[pickerVC setDelegate : self ];
[ self presentViewController :pickerVC animated : YES completion : NULL ];
}
//#pragma mark - 图片获取代理对象
- ( void )imagePickerController:( UIImagePickerController *)picker didFinishPickingMediaWithInfo:( NSDictionary *)info
{
[picker dismissViewControllerAnimated : YES completion : NULL ];
UIImage *image = info[ UIImagePickerControllerOriginalImage ];
self . tempImage = image;
[ self . imageButton setBackgroundImage : self . tempImage forState : UIControlStateNormal ];
}
- ( BOOL )textFieldShouldReturn:( UITextField *)textField
{
[textField resignFirstResponder ];
return YES ;
}
-( BOOL )textFieldShouldEndEditing:( UITextField *)textField{
self . tempNumber = self . numberField . text ;
return YES ;
}
@end