菜鸟教程小白 发表于 2022-12-13 02:34:44

ios - 如何在objective-c中的 View Controller 之间传递数据?


                                            <p><p>选择项是一个 slider 。当我单击 slider 时,它会将数据传递给第二个 VC(WebViewController)。但是如何在objective-c中将数据从第一个 ViewController 传递到第二个 ViewController ?抱歉,这是我第一次编写 Objective-C 。</p>

<p>第一个 VC .m 文件</p>

<pre><code>#import &#34;WebViewController.h&#34;

- (void)viewDidLoad {
    ;
    arraySliderProducts = [init];
}


- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
    ;

    UIViewController *controller = nil;


    switch (indexPath.row)
    {

      case 0:
      {
            WebViewController *WebViewController = [ init];
            //error: No visible @interface for &#34;WebViewController&#34; declares the selector &#39;alloc&#39;
            WebViewController.data = arraySliderProducts[@&#34;title&#34;]; //pass this link value
            //error: Property &#39;data&#39; not found on object of type &#39;WebViewController&#39;
            ;
      }..
</code></pre>

<p>第二个 VC .m 文件</p>

<pre><code>@interface WebViewController ()
@property (nonatomic, retain) NSString *data;
</code></pre>

<p>第二个 VC .h 文件</p>

<pre><code>#import &lt;UIKit/UIKit.h&gt;

@interface WebViewController : UIViewController
{
    AppDelegate *appDelegate;
    NSString *data;
}
@end
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>注意两点:</p>

<p>1:这不是启动 ViewController 以在您的应用中显示/呈现的方式。</p>

<p>2:您应该在您的 SecondVC 的 <code>.h</code> 文件中声明您的 <code>NSString *data</code>。 </p>

<p>现在第 1 点解决方案是在您的 <code>didSelectItemAtIndexPath</code> 中更改您的代码:函数</p>

<pre><code>switch (indexPath.row)
{
    case 0:
    {
      // By Default storyboard name is &#34;Main&#34;. Change it if you you have different name in your project
      UIStoryboard *mainStoryboard = ;

      // Now instantiate your view controller with its identifier on this storyboard object.
      // Note: don&#39;t forget to set viewControllers&#39; identifier
      WebViewController *vc = ;

      // Now Pass your value
      WebViewController.data = arraySliderProducts[@&#34;title&#34;];

      //Finally push this object on your navigation stack
      ;
    }...
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 如何在objective-c中的 ViewController 之间传递数据?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/46108639/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/46108639/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 如何在objective-c中的 View Controller 之间传递数据?