在两个viewcontroller之间的delegation有问题 -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

在两个viewcontroller之间的delegation有问题

2016-05-27 11:27:17 1599 1

第一个viewcontroller是排行榜菜单,里面有一个按钮指示到第二个viewcontroller中,第二个是小游戏,如果玩家输了,最高分变动,就更新排行榜。在玩家完成游戏时建了带两个按钮的UIAlertView,一个是主菜单,另一个是重新开始,我的代码如下:我想通过delegation更新排行榜

@protocol highScoreProtocol <NSObject>

       -(void)updateHighScore:(int) score;


       @end

       @interface ViewController : UIViewController <UIAlertViewDelegate> 
       @property (nonatomic) int score;
       @property (nonatomic, weak) id <highScoreProtocol> delegateHighScore;
       @implementation ViewController
       @synthesize score=_score;
       @synthesize delegateHighScore=_delegateHighScore;

           -(void)lostGame{
           [self.delegateHighScore updateHighScore:self.score]; 

       UIAlertView *losingScreen=[[UIAlertView alloc]initWithTitle:@"Game Over" message:[NSString stringWithFormat:@"Your Score Is %d", self.score] delegate:self cancelButtonTitle:@"Main Menu" otherButtonTitles:@"Restart", nil]; 
           }

       -(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
             if (buttonIndex==0) {


           } else if (buttonIndex==1){

           }
       }

   @end

           @interface MenuVC : UIViewController <highScoreProtocol>
           @property (weak, nonatomic) IBOutlet UILabel *labelHighScore;
   @end


@implementation MenuVC

- (void)viewDidLoad
{
   [super viewDidLoad];
   ViewController *vc=[[ViewController alloc]init];
   vc.delegateHighScore=self;

}

-(void)updateHighScore:(int)score{
   if (score>[self.labelHighScore.text integerValue]) { 
       self.labelHighScore.text=[NSString stringWithFormat:@"%d", score];
   }
   NSLog(@"does this method even run");
}
取消 提交回答
全部回答(1)
  • 爵霸
    2019-07-17 19:17:30

    这行代码不对

    ViewController *vc=[[ViewController alloc]init];
    vc.delegateHighScore=self;

    定义了一个新的不相干的viewcontroller

    如果你的情况是这样:定义一个viewcontrolleridentifier,选择viewcontroller,……

    然后用这行代码:

    ViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"yourIdentifier"];
    vc.delegateHighScore = self;
    0 0
相关问答

1

回答

什么是X-Dragon Hypervisor 基于神龙的软硬一体的虚拟化技术?

2022-04-05 09:37:22 392浏览量 回答数 1

1

回答

Storyboard 里面如何根据条件显示最初的ViewController

2016-07-27 16:00:26 1567浏览量 回答数 1

0

回答

self.navigationController 为空,在MasterViewController 不同的方法里

2016-07-27 13:58:14 2051浏览量 回答数 0

1

回答

UIViewController 的问题

2016-06-30 15:59:19 1174浏览量 回答数 1

1

回答

关于添加UINavigationController 的问题

2016-03-24 11:57:45 1363浏览量 回答数 1

1

回答

从ViewController返回View

2016-03-24 11:37:15 1593浏览量 回答数 1

1

回答

请问这个界面都需要什么?用什么viewcontroller?

2016-03-11 07:54:21 1430浏览量 回答数 1

1

回答

两个关于UIImagePikerController调用系统相机的问题

2016-03-13 10:02:53 1629浏览量 回答数 1

1

回答

XCODE6.1 不能拖拽Main Storyboard控件至ViewController?

2016-03-06 14:55:07 2175浏览量 回答数 1

1

回答

请问ios怎么在viewcontroller.m中调用AppDelegate.m中的字符

2016-03-12 18:34:34 1836浏览量 回答数 1
+关注
2
文章
9426
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载