IOS 中的页面跳转(navigaitonController)+带自动返回
2015-09-07 22:26
183 查看
页面1 跳至 页面2
代码如下:
1.AppDelegate.h
#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic)UINavigationController *navigationController;
@end
2. AppDelegate.m
#import "AppDelegate.h"
#import "FirstViewController.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UIWindow *window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]];
FirstViewController *viewController = [[FirstViewController alloc]initWithNibName:@"FirstViewController" bundle:nil];
_navigationController = [[UINavigationController alloc]initWithRootViewController:viewController];
[self.window addSubview:_navigationController.view];
self.window.rootViewController = _navigationController;
// self.window.rootViewController = viewController;
[self.window makeKeyAndVisible];
return YES; return YES;
}
3. FirstViewController.h
#import <UIKit/UIKit.h>
@interface FirstViewController : UIViewController{
}
- (IBAction)pressToSecond:(id)sender;
@end
4.FirstViewController.m
#import "FirstViewController.h"
#import "SecondViewController.h"
#import "AppDelegate.h"
@interface FirstViewController ()
@end
@implementation FirstViewController
- (void)viewDidLoad {
[super viewDidLoad];
// [self.next addTarget:self action:@selector(pressToSecond:) forControlEvents:UIControlEventTouchUpInside];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)pressToSecond:(id)sender {
SecondViewController *secondView = [[SecondViewController alloc]initWithNibName:@"SecondViewController" bundle:nil];
// 页面跳转:
// 方法1:(传不了值,不知道为什么???)
AppDelegate *myDelegate = [[UIApplication sharedApplication]delegate];
[myDelegate.navigationController pushViewController:secondView animated:YES];
}
@end
这样就可以有上面的效果了,但是如果secondViewController里设置此controller的navigationController的
navigationBar就不会自动显示返回按钮了,需要在secondViewController里设置一下。
-(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
AppDelegate *myDelegate = [[UIApplication sharedApplication]delegate];
// myDelegate.navigationController.navigationBarHidden = YES;
self.navigationController.navigationBarHidden = YES;
}
代码如下:
1.AppDelegate.h
#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic)UINavigationController *navigationController;
@end
2. AppDelegate.m
#import "AppDelegate.h"
#import "FirstViewController.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UIWindow *window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]];
FirstViewController *viewController = [[FirstViewController alloc]initWithNibName:@"FirstViewController" bundle:nil];
_navigationController = [[UINavigationController alloc]initWithRootViewController:viewController];
[self.window addSubview:_navigationController.view];
self.window.rootViewController = _navigationController;
// self.window.rootViewController = viewController;
[self.window makeKeyAndVisible];
return YES; return YES;
}
3. FirstViewController.h
#import <UIKit/UIKit.h>
@interface FirstViewController : UIViewController{
}
- (IBAction)pressToSecond:(id)sender;
@end
4.FirstViewController.m
#import "FirstViewController.h"
#import "SecondViewController.h"
#import "AppDelegate.h"
@interface FirstViewController ()
@end
@implementation FirstViewController
- (void)viewDidLoad {
[super viewDidLoad];
// [self.next addTarget:self action:@selector(pressToSecond:) forControlEvents:UIControlEventTouchUpInside];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)pressToSecond:(id)sender {
SecondViewController *secondView = [[SecondViewController alloc]initWithNibName:@"SecondViewController" bundle:nil];
// 页面跳转:
// 方法1:(传不了值,不知道为什么???)
AppDelegate *myDelegate = [[UIApplication sharedApplication]delegate];
[myDelegate.navigationController pushViewController:secondView animated:YES];
}
@end
这样就可以有上面的效果了,但是如果secondViewController里设置此controller的navigationController的
navigationBar就不会自动显示返回按钮了,需要在secondViewController里设置一下。
-(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
AppDelegate *myDelegate = [[UIApplication sharedApplication]delegate];
// myDelegate.navigationController.navigationBarHidden = YES;
self.navigationController.navigationBarHidden = YES;
}
相关文章推荐
- iOS开发:Delegate、Notification和KVO的联系与区别
- iOS开发:MVC(模型-视图-控制器)详解
- iOS编程:学习篇(十二)
- iOS数据持久化
- 新浪微博自定制TabBar
- IOS己见之NSDate
- iOS学习篇章3--SEL与@selector
- iOS 笔记六: 协议 Protocols
- IOS开发指南学习——数据持久化(Core Data)
- Installation Failure Troubleshooting for iOS
- 问题:In IOS8 wakeups limit
- iOS应用性能调优的25个建议和技巧
- IOS 技术进阶 —— RunLoop 原理和核心机制
- iOS中简单的KVC
- iOS开发系列课程(05) --- 导航视图控制器
- iOS学习篇章2--Category类别
- 小胖说事39-----iOS 获取通讯录中联系人的所有属性
- ios开发,javascript直接调用oc代码而非通过改变url回调方式
- iOS开发 - GCD
- IOS界面跳转的两种方法