1

こんにちは、iOS 初心者です。

親クラスと子クラスの 2 つのクラスがあります。UIScrollViewを作成する親クラスに1つのメソッドがあります。親クラスのオブジェクトを作成して、子クラスからその親クラスのメソッドを呼び出そうとしています。そのメソッドは、子クラスから呼び出しているときに呼び出されますが、self を使用して親クラスで同じメソッドを呼び出すと、UIScrollView が作成されず、UIScrollView が作成されます。

どこで問題を起こしているのかわかりません。ガイドしてください

//親クラスのスクロールビュー作成メソッド//

  -(void)creatingScroll
{
UIScrollView * propertyScrl = [[UIScrollView alloc]initWithFrame:CGRectMake(10, 200, 320, 160)];
propertyScrl.scrollEnabled = YES;
propertyScrl.showsHorizontalScrollIndicator = YES;
propertyScrl.contentSize = CGSizeMake(600, 60);
propertyScrl.backgroundColor = [UIColor redColor];
[self.view addSubview:propertyScrl];

}

//子クラスから上記のメソッドを呼び出す//

    ParentViewController *vc = [[ParentViewController alloc]init];

    [vc creatingScroll];
4

3 に答える 3

1

あなたは別のオブジェクトを作成し、そのオブジェクトでメソッドParentViewControllerを呼び出しcreatingScrollていますが、これはviewControllerにプッシュされるビューではありません。

プロトコルとデリゲートを使用して、親クラスのメソッドを呼び出すことができます。

http://mobiledevelopertips.com/objective-c/the-basics-of-protocols-and-delegates.htmlを参照してください

それが役に立てば幸い。幸せなコーディング:)

于 2012-09-11T05:57:48.563 に答える
0

のすべてのメソッドをすでに継承しているのでsuperclass、サブクラスsubclassを呼び出すだけです。[self creatingScroll]

于 2012-09-11T06:11:23.437 に答える
0
  -(UIScrollView *)creatingScroll
{
UIScrollView * propertyScrl = [[UIScrollView alloc]initWithFrame:CGRectMake(10, 200, 320, 160)];
propertyScrl.scrollEnabled = YES;
propertyScrl.showsHorizontalScrollIndicator = YES;
propertyScrl.contentSize = CGSizeMake(600, 60);
propertyScrl.backgroundColor = [UIColor redColor];
 //[self.view addSubview:propertyScrl];  // don't add here

return propertyScrl;

}

//calling above method from child class or any class//
probably in viewDidLoad of child class 

 ParentViewController * vc = [[ParentViewController alloc]init];

  UIScrollView * scrollView = (UIScrollVIew * ) [vc creatingScroll];

    [self.view addSubView:scrollView];
于 2012-09-11T06:52:41.903 に答える