我有两个XAML页面:Menu.xaml和Main.xaml.
在Menu.xaml上,我有2个按钮(Easy&Hard),当我点击按钮时,我导航到Main.xaml.
当我点击'Easy'或'Hard'时,我希望传递一些值,以便我可以适当地填充Main.xaml.
1.如何在C#中传递值/参数?
2.我在哪里检索这些值(例如在PageLoad上?)
我试图从Flickr API获取一些JSON数据但我的Swift代码不起作用.
这是基于Jameson Quave关于使用Swift发出API请求的教程
func GetFlickrData(tags: String) {
let baseURL = "https://api.flickr.com/services/rest/?&method=flickr.photos.search"
let apiString = "&api_key=\(apiKey)"
let searchString = "&tags=\(tags)"
let requestURL = NSURL(string: baseURL + apiString + searchString)
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithURL(requestURL, completionHandler: { data, response, error -> Void in
var result = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: nil) as NSDictionary
dispatch_async(dispatch_get_main_queue(), {
println(result)
})
})
task.resume()
}
Run Code Online (Sandbox Code Playgroud)
这显示了requestURL 参数的错误:"NSURL类型的Vaue?未解包".当我添加"!"时,错误消失了.但是,在拨打电话时我仍然会收到运行时错误.
在调试器中,我看到:
data =(NSData!)16642个字节
致命错误:在展开Optional值时意外发现nil
我错过了什么?
编辑 - 这在Xcode 6上运行良好,它在将Xcode更新到6.1版时破坏了
我正在尝试刷新/更新Metro风格应用的UI以反映更改.
要重新绘制Windows窗体中的控件,您只需使用:
this.Refresh();
Run Code Online (Sandbox Code Playgroud)
如何在Metro Style应用程序中获得类似的结果?
在C#中考虑这个简单的例子:
private async void Button_Click(object sender, RoutedEventArgs e)
{
btnStatus.Content = "Test started";
Task.Delay(3000); // Wait 3 seconds
btnStatus.Content = "Test Ended"
}
Run Code Online (Sandbox Code Playgroud)
我需要做的是:显示"开始"消息,等待几秒钟,然后显示"结束"消息.但是,当它运行时,btnStatus会立即显示"TestEnded" - 就好像前两个语句没有执行一样.
我怎样才能解决这个问题?
我看过:如何在Metro应用程序中刷新UI?但它没有帮助.