IOS开发-OC页面跳转传递参数
<h2>使用OC进行IOS开发页面跳转传递参数的思路:</h2><p>1.在AppDelegate.h中定义一个可变词典</p>
<p>2.在AppDelegate.m中初始化该可变词典</p>
<p>3.向字典中添加要传递的参数</p>
<p>4.在目标页面拿到参数</p>
<p> </p>
<h2>1.在AppDelegate.h中定义一个可变词典</h2>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">#import</span> <UIKit/UIKit.h>
<span style="color: rgba(0, 0, 255, 1)">@interface</span> AppDelegate : UIResponder <UIApplicationDelegate><span style="color: rgba(0, 0, 0, 1)">
@property (strong,nonatomic)UIWindow </span>*<span style="color: rgba(0, 0, 0, 1)">window;
@property (strong, nonatomic) NSMutableDictionary </span>*RouterData;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">路由参数字典</span>
<span style="color: rgba(0, 0, 255, 1)">@end</span></pre>
</div>
<p> </p>
<h2>2.在AppDelegate.m中初始化该可变词典</h2>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">//</span>
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">AppDelegate.m
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">viewtest
</span><span style="color: rgba(0, 128, 0, 1)">//</span>
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">Created by 001 on 2023/5/9.
</span><span style="color: rgba(0, 128, 0, 1)">//
</span><span style="color: rgba(0, 0, 255, 1)">#define</span> WYColor(r, g, b)
<span style="color: rgba(0, 0, 255, 1)">#import</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">AppDelegate.h</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 0, 255, 1)">#import</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">datashare1.h</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 0, 255, 1)">@interface</span><span style="color: rgba(0, 0, 0, 1)"> AppDelegate ()
</span><span style="color: rgba(0, 0, 255, 1)">@end</span>
<span style="color: rgba(0, 0, 255, 1)">@implementation</span><span style="color: rgba(0, 0, 0, 1)"> AppDelegate
</span>- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *<span style="color: rgba(0, 0, 0, 1)">)launchOptions {
_RouterData </span>= [ initWithCapacity:<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">];
datashare1 </span>*sharview =<span style="color: rgba(0, 0, 0, 1)"> [ init];
UINavigationController </span>*navigation =<span style="color: rgba(0, 0, 0, 1)"> [ initWithRootViewController:sharview];
self.window.rootViewController </span>=<span style="color: rgba(0, 0, 0, 1)"> navigation;
;
NSLog(</span><span style="color: rgba(128, 0, 0, 1)">@"</span><span style="color: rgba(128, 0, 0, 1)">执行了</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> YES;
}
</span><span style="color: rgba(0, 0, 255, 1)">#pragma</span> mark - UISceneSession lifecycle
<span style="color: rgba(0, 0, 255, 1)">@end</span></pre>
</div>
<h2>3.在源页面向字典中添加要传递的参数</h2>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">//</span>
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">datashare1.m
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">blog
</span><span style="color: rgba(0, 128, 0, 1)">//</span>
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">Created by 001 on 2023/7/19.
</span><span style="color: rgba(0, 128, 0, 1)">//
</span>
<span style="color: rgba(0, 0, 255, 1)">#import</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">datashare1.h</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 0, 255, 1)">#import</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">AppDelegate.h</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 0, 255, 1)">#import</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">datashare2.h</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 0, 255, 1)">@interface</span><span style="color: rgba(0, 0, 0, 1)"> datashare1 ()
</span>-(<span style="color: rgba(0, 0, 255, 1)">void</span><span style="color: rgba(0, 0, 0, 1)">)goShare2;
</span><span style="color: rgba(0, 0, 255, 1)">@end</span>
<span style="color: rgba(0, 0, 255, 1)">@implementation</span><span style="color: rgba(0, 0, 0, 1)"> datashare1
</span>-(<span style="color: rgba(0, 0, 255, 1)">void</span><span style="color: rgba(0, 0, 0, 1)">)goShare2{
AppDelegate </span>*<span style="color: rgba(0, 0, 255, 1)">delegate</span> = (AppDelegate *)[ <span style="color: rgba(0, 0, 255, 1)">delegate</span><span style="color: rgba(0, 0, 0, 1)">];
[</span><span style="color: rgba(0, 0, 255, 1)">delegate</span>.RouterData setObject:<span style="color: rgba(128, 0, 0, 1)">@"</span><span style="color: rgba(128, 0, 0, 1)">我是datashare1传递的参数</span><span style="color: rgba(128, 0, 0, 1)">"</span>forKey:<span style="color: rgba(128, 0, 0, 1)">@"</span><span style="color: rgba(128, 0, 0, 1)">data</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">];
datashare2 </span>*shareview =<span style="color: rgba(0, 0, 0, 1)"> [ init];
;
}
</span>- (<span style="color: rgba(0, 0, 255, 1)">void</span><span style="color: rgba(0, 0, 0, 1)">)viewDidLoad {
;
UIButton </span>*btn =<span style="color: rgba(0, 0, 0, 1)"> ;
;
btn.frame </span>= CGRectMake((self.view.frame.size.width-<span style="color: rgba(128, 0, 128, 1)">200</span>)/<span style="color: rgba(128, 0, 128, 1)">2</span>, (self.view.frame.size.height-<span style="color: rgba(128, 0, 128, 1)">100</span>)/<span style="color: rgba(128, 0, 128, 1)">2</span>, <span style="color: rgba(128, 0, 128, 1)">200</span>, <span style="color: rgba(128, 0, 128, 1)">100</span><span style="color: rgba(0, 0, 0, 1)">);
;
self.view.backgroundColor </span>=<span style="color: rgba(0, 0, 0, 1)"> ;
;
}
</span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using .
// Pass the selected object to the new view controller.
}
</span><span style="color: rgba(0, 128, 0, 1)">*/</span>
<span style="color: rgba(0, 0, 255, 1)">@end</span></pre>
</div>
<h2>4.在目标页面拿到参数</h2>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">//</span>
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">datashare2.m
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">blog
</span><span style="color: rgba(0, 128, 0, 1)">//</span>
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">Created by 001 on 2023/7/19.
</span><span style="color: rgba(0, 128, 0, 1)">//
</span>
<span style="color: rgba(0, 0, 255, 1)">#import</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">datashare2.h</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 0, 255, 1)">#import</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">AppDelegate.h</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 0, 255, 1)">@interface</span><span style="color: rgba(0, 0, 0, 1)"> datashare2 ()
</span><span style="color: rgba(0, 0, 255, 1)">@end</span>
<span style="color: rgba(0, 0, 255, 1)">@implementation</span><span style="color: rgba(0, 0, 0, 1)"> datashare2
</span>- (<span style="color: rgba(0, 0, 255, 1)">void</span><span style="color: rgba(0, 0, 0, 1)">)viewDidLoad {
;
self.view.backgroundColor </span>=<span style="color: rgba(0, 0, 0, 1)"> ;
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Do any additional setup after loading the view.</span>
AppDelegate *<span style="color: rgba(0, 0, 255, 1)">delegate</span> = (AppDelegate *)[ <span style="color: rgba(0, 0, 255, 1)">delegate</span><span style="color: rgba(0, 0, 0, 1)">];
NSString </span>*text = [<span style="color: rgba(0, 0, 255, 1)">delegate</span>.RouterData objectForKey:<span style="color: rgba(128, 0, 0, 1)">@"</span><span style="color: rgba(128, 0, 0, 1)">data</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">];
UILabel </span>*label = [ initWithFrame:CGRectMake((self.view.frame.size.width-<span style="color: rgba(128, 0, 128, 1)">400</span>)/<span style="color: rgba(128, 0, 128, 1)">2</span>, (self.view.frame.size.height-<span style="color: rgba(128, 0, 128, 1)">200</span>)/<span style="color: rgba(128, 0, 128, 1)">2</span>, <span style="color: rgba(128, 0, 128, 1)">400</span>, <span style="color: rgba(128, 0, 128, 1)">200</span><span style="color: rgba(0, 0, 0, 1)">)];
;
label.text </span>=<span style="color: rgba(0, 0, 0, 1)"> text;
label.textAlignment </span>=<span style="color: rgba(0, 0, 0, 1)"> NSTextAlignmentCenter;
}
</span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using .
// Pass the selected object to the new view controller.
}
</span><span style="color: rgba(0, 128, 0, 1)">*/</span>
<span style="color: rgba(0, 0, 255, 1)">@end</span></pre>
</div>
<p> </p><br><br>
来源:https://www.cnblogs.com/SadicZhou/p/17565125.html
頁:
[1]