蒋春敏 發表於 2023-7-19 11:21:00

IOS开发-OC页面跳转传递参数

<h2>使用OC进行IOS开发页面跳转传递参数的思路:</h2>
<p>1.在AppDelegate.h中定义一个可变词典</p>
<p>2.在AppDelegate.m中初始化该可变词典</p>
<p>3.向字典中添加要传递的参数</p>
<p>4.在目标页面拿到参数</p>
<p>&nbsp;</p>
<h2>1.在AppDelegate.h中定义一个可变词典</h2>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">#import</span> &lt;UIKit/UIKit.h&gt;


<span style="color: rgba(0, 0, 255, 1)">@interface</span> AppDelegate : UIResponder &lt;UIApplicationDelegate&gt;<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>&nbsp;</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>&nbsp;</p><br><br>
来源:https://www.cnblogs.com/SadicZhou/p/17565125.html
頁: [1]
查看完整版本: IOS开发-OC页面跳转传递参数